Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript\d正则表达式的意外行为_Javascript_Regex - Fatal编程技术网

javascript\d正则表达式的意外行为

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

我正在尝试使用javascript正则表达式进行匹配,我发现了一个非常不寻常的行为,我希望有人能解释一下

我试图匹配的字符串是:“0(IR)”,代码块是

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)