所以我第一次尝试了一些非常基本的RegEx,我被告知'\d
'表示数字匹配。
请有人解释为什么只有下面的模式1带有双反斜杠“\\d
”才有效,理论上它不应该。
查看Javascript正则表达式文档后,当您按照link进行操作时,它们还会包含流氓反斜杠。
var str = "123456",
pattern1 = new RegExp("^\\d{6}$"),
pattern2 = new RegExp("^\d{6}$");
if(pattern1.test(str)){
alert('pattern 1 match!');
}else{
alert('pattern 1 no match!');
}
if(pattern2.test(str)){
alert('pattern 2 match!');
}else{
alert('pattern 2 no match!');
}
答案 0 :(得分:8)
如果您以/
结尾并以pattern2 = new RegExp(/^\d{6}$/);
\
需要额外的\
,因为它会逃避另一个{{1}}
答案 1 :(得分:2)
在JavaScript中,反斜杠\
是一个特殊的转义字符。要在JavaScript字符串中表示反斜杠,您必须使用两个\\
。
请参阅文档at MDN