Javascript RegExp对象文字符号与构造函数符号的差异

Javascript RegExp对象文字符号与构造函数符号的差异,javascript,regex,Javascript,Regex,为什么digits.match(re)返回NULL而.test返回true? 当我只运行digits.match(“/\d+/”)时;我得到了正确的答案。new RegExp()语法没有使用前斜杠作为分隔符。假设整个字符串都是正则表达式。此外,反斜杠必须转义,因为当您不引用转义字符时,这是字符串的要求 这些都是相同的: var digits = "B2"; var re = new RegExp("/\d+/"); console.log(/\d+/.test(digits)); console

为什么digits.match(re)返回NULL而.test返回true? 当我只运行digits.match(“/\d+/”)时;我得到了正确的答案。

new RegExp()语法没有使用前斜杠作为分隔符。假设整个字符串都是正则表达式。此外,反斜杠必须转义,因为当您不引用转义字符时,这是字符串的要求

这些都是相同的:

var digits = "B2";
var re = new RegExp("/\d+/");
console.log(/\d+/.test(digits));
console.log("digits matches to :", digits.match(re));
new RegExp()
语法不使用前斜杠
/
作为分隔符。假设整个字符串都是正则表达式。此外,反斜杠必须转义,因为当您不引用转义字符时,这是字符串的要求

这些都是相同的:

var digits = "B2";
var re = new RegExp("/\d+/");
console.log(/\d+/.test(digits));
console.log("digits matches to :", digits.match(re));

我得到了
数字的
null
。匹配(“/\d+/”)
。你确定这就是你使用的代码吗?我得到了
数字的
null
。匹配(“/\d+/”
)。你确定这就是你使用的代码吗?我想强调的是反斜杠转义非常重要,因为bug可能会在意想不到的时间(如
\b
)悄悄出现。我想强调的是,反斜杠转义非常重要,因为bug可能会在意想不到的时间(如
\b
)悄悄出现。