我必须传递给变量的RegExp值并指向一个单词边界。如果它包含变量值,我有一个要检查的字符串。 我不知道如何将regexp作为变量值和单词边界属性传递。
这样的事情:
var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));
我尝试了一些方法来解决问题,但仍然无法解决问题:(
答案 0 :(得分:7)
使用此:re = new RegExp("\\b" + sa)
正如@RobW所提到的,你可能需要逃避sa
。
答案 1 :(得分:3)
如果要获取所有出现次数(g
),请不区分大小写(i
),并使用边界使其不是另一个单词中的单词(\\b
) :
re = new RegExp(`\\b${sa}\\b`, 'gi');
示例:
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.