RegExp Object Literal表示法与构造函数表示法的区别

时间:2016-06-02 04:09:21

标签: javascript regex

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

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

1 个答案:

答案 0 :(得分:4)

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

这些是相同的:

digits.match(new RegExp("\\d+")); // 2

digits.match(/\d+/); // 2