var digits = "B2";
var re = new RegExp("/\d+/");
console.log(/\d+/.test(digits));
console.log("digits matches to :", digits.match(re));
Run Code Online (Sandbox Code Playgroud)
为什么digits.match(re) 返回NULL 而.test 返回true?当我运行digits.match("/\d+/"); 我得到了正确的答案。
该new RegExp()语法不使用斜线/作为分隔符。假设整个字符串是正则表达式。此外,必须对反斜杠进行转义,因为当您不引用转义字符时,这是字符串的要求。
这些是相同的:
digits.match(new RegExp("\\d+")); // 2
digits.match(/\d+/); // 2
Run Code Online (Sandbox Code Playgroud)