我试图让用户输入将其与字符串变量匹配,当我将文字字符串传递给new RegExp(/\bjavascript/)
时,它可以工作,但是我尝试了new RegExp('\b' + this.input)
或new RegExp('/\b' + this.input + '/');
时失败了。 / p>
这是代码
var lang = 'javascript'
let patern = new RegExp('/\b' + this.input + '/');
console.log(patern.test('lang'));
其中“ input”是在我的课堂中声明的
答案 0 :(得分:1)
从开头和结尾删除斜杠并转义反斜杠:
this.input = "St";
let pattern = new RegExp('\\b' + this.input, 'i');
console.log(
"Stack Overflow".match(pattern)
)
答案 1 :(得分:0)
当输入来自用户时,最好使用以下命令对字符串进行转义:
RegExp.escape = function (s)
{
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};
您这样称呼它:
let patern = new RegExp('\\b' + RegExp.escape(this.input));
这样,即使输入中包含特殊字符(例如'\
'或括号),它也可以正常工作>