繁体   English   中英

使用JavaScript中的正则表达式精确匹配字符串

[英]Exact match a string using Regular Expression in JavaScript

我想验证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/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

有人可以帮忙吗? 提前致谢

您应该使用此正则表达式:

/^[A-Za-z0-9() ]*$/

如果您不希望使用空字符串,请用+替换*

^$测试字符串的开头和结尾。

*表示重复0次或更多次。 +表示重复一次或多次。

要指定一个字符类(即一组字符),您需要将这些字符放在[]


要进一步缩短正则表达式:

/^[a-z\d() ]*$/i

i标志将使正则表达式不区分大小写地匹配,从而消除了指定AZ的需要。

\\d是数字0-9的速记字符类。 速记字符类也可以包含在字符类中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM