0

こんにちは、Rails アプリに検索ボックスがあり、現在これがあります。

var searchReg = /^([a-zA-Z0-9]{0,16})$/; 

メールエントリを検索できないことを除いて、すべて正常に機能します。ボックスに少なくとも 2 文字ある場合は、あらゆる場所を探したり、任意の文字を受け入れることさえ試みました。ランダムな場所に入れてみまし+@たが、正直なところ、何をしているのかわかりません。誰か助けてください。

コメントからのコード:

jQuery(function(){
    $("input[value='Search']" ).click(function(){
        $(".error").hide();
        var hasError = false;
        var searchReg = /^([a-zA-Z0-9]{0,16})$/;
        var searchVal = $("#q").val();
        if(searchVal == '') {
            $("#q").after('<span class="error">Please enter a search term.</span>');
            hasError = true;
        } else if(!searchReg.test(searchVal)) {
            $("q").after('<span class="error">Enter valid text.</span>');
            hasError = true;
        }
        if(hasError == true) {return false;}
    }); 
}); 
4

1 に答える 1

2

各記号を文字クラスに追加するだけで、特別な意味を持つものを確実にエスケープできます。

var searchReg = /^([a-zA-Z0-9@\-_\.]{0,16})$/; 

正規表現を理解するための強力なツールは、 http ://regex101.com/ です。

PS: そこに正規表現を入力すると、おそらく不要なキャプチャ グループがあることに気付くでしょう。

于 2013-10-17T09:56:56.390 に答える