我想在JavaScript中验证字符串以允许字母数字,“(”,“)”和空格。所以测试字符串是:
s1 = "This $h00l*&^ not w0rk342*_(&, <and> always fail"
s2 = "This should work (ABC1234)"
我的代码:
var regX = new RegExp(/A-Za-z0-9\\(\\)\\x20+/);
if(!regX.test(s1)){
alert("InValid value.");
}
但是两个字符串都失败了。
同样,test()函数评估字符串中的匹配而不是整个字符串 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
有人可以帮忙。提前致谢
答案 0 :(得分:3)
你应该使用这个正则表达式:
/^[A-Za-z0-9() ]*$/
如果您不想允许空字符串,请将*
替换为+
。
^
和$
分别测试字符串的开头和结尾。
*
表示重复0次或更多次。 +
表示重复一次或多次。
要指定字符类(即一组字符),您需要将字符放在[]
内。
进一步缩短正则表达式:
/^[a-z\d() ]*$/i
i
标志会使正则表达式匹配不区分大小写,这样就无需指定A-Z
。
\d
是数字0-9
的速记字符类。速记字符类也可以包含在字符类中。