我必须传递给变量的RegExp值并指向一个单词边界.如果它包含变量值,我有一个要检查的字符串.我不知道如何将regexp作为变量值和单词边界属性传递给我.
所以像这样:
var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));
Run Code Online (Sandbox Code Playgroud)
我尝试了一些方法来解决问题,但仍然不能这样做:(
用这个: re = new RegExp("\\b" + sa)
正如@RobW所说,你可能需要逃避sa.
看到这个:Javascript中是否有RegExp.escape函数?
如果您希望获得所有出现(g),请不区分大小写(i),并使用边界,使其在另一个单词(\\b)中不再是一个单词:
re = new RegExp(`\\b${sa}\\b`, 'gi');
Run Code Online (Sandbox Code Playgroud)
例:
let inputString = "I'm John, or johnny, but I prefer john.";
let swap = "John";
let re = new RegExp(`\\b${swap}\\b`, 'gi');
console.log(inputString.replace(re, "Jack")); // I'm Jack, or johnny, but I prefer Jack.
Run Code Online (Sandbox Code Playgroud)