我想要所有字母数字数据+ 只允许以下4个特殊字符。
' (single quote)
- (hyphen)
. (dot)
single space
我试过了:
var userinput = $(this).val();
var pattern = [A-Za-z0-9_~\-!@#\$%\^&\*\(\)]+$
if(!pattern.test(userinput))
{
alert('not a valid');
}
但它不起作用。
答案 0 :(得分:3)
首先,您需要将字符串括在/
中以将其解释为正则表达式:
var pattern = /[A-Za-z0-9_~\-!@#\$%\^&\*\(\)]+$/;
然后,您必须删除一些不允许的字符(正则表达式匹配的数量超过您指定的数量):
var pattern = /^[A-Za-z0-9 '.-]+$/;
第二个是你需要的。完整代码:
var userinput = $(this).val();
var pattern = /^[A-Za-z0-9 '.-]+$/;
if(!pattern.test(userinput))
{
alert('not a valid');
}
此外,请检查this
指向的内容。
答案 1 :(得分:0)
“不工作”不是对您的问题的有用描述。
我建议这个定期表达:
^[a-zA-Z0-9\'\-\. ]+$