嗨我的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;}
});
});
答案 0 :(得分:2)
您可以简单地将每个符号添加到角色类中,确保逃避那些具有特殊意义的符号:
var searchReg = /^([a-zA-Z0-9@\-_\.]{0,16})$/;
找出正则表达式的强大工具是:http://regex101.com/
PS:如果你在那里输入你的正则表达式,你会发现你有一个可能没必要的捕获组。