javascript\d正则表达式的意外行为
我正在尝试使用javascript正则表达式进行匹配,我发现了一个非常不寻常的行为,我希望有人能解释一下 我试图匹配的字符串是:“0(IR)”,代码块是javascript\d正则表达式的意外行为,javascript,regex,Javascript,Regex,我正在尝试使用javascript正则表达式进行匹配,我发现了一个非常不寻常的行为,我希望有人能解释一下 我试图匹配的字符串是:“0(IR)”,代码块是 finalRegEx = new RegExp("[0-9]"); match = finalRegEx.exec(str); 除了当我将“\d”替换为“[0-9]”时,它没有找到匹配项。我真的被这搞糊涂了 您需要转义它,因为您使用的是构造函数,否则它会匹配d字面意思: new RegExp('\\d').test('1') new Reg
finalRegEx = new RegExp("[0-9]");
match = finalRegEx.exec(str);
除了当我将“\d”替换为“[0-9]”时,它没有找到匹配项。我真的被这搞糊涂了 您需要转义它,因为您使用的是构造函数,否则它会匹配
d
字面意思:
new RegExp('\\d').test('1')
new RegExp
只能用于动态匹配。否则,请使用文字:
var foo = /\d/;
foo.test(1)
如果将RegExp与“\d”
一起使用来构建正则表达式,“\d”
将只生成“d”
。可以使用两个反斜杠来转义斜杠,如“\\d”
,也可以使用:
您可能需要避开反斜杠:
finalRegEx=newregexp(“\\d”)代码>动态匹配是什么意思?与变量内容匹配?动态创建regex而不是硬编码它,例如在循环中,根据某个变化的变量创建一个新的RegExp对象。
match = /\d/.exec(str)