jquery正则表达式允许任何东西

时间:2013-10-17 09:52:01

标签: javascript jquery ruby-on-rails regex expression

嗨我的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;}
    }); 
}); 

1 个答案:

答案 0 :(得分:2)

您可以简单地将每个符号添加到角色类中,确保逃避那些具有特殊意义的符号:

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

找出正则表达式的强大工具是:http://regex101.com/

PS:如果你在那里输入你的正则表达式,你会发现你有一个可能没必要的捕获组。