Javascript 将变量传递给具有字边界的RegExp
我必须传递给变量的RegExp值,并指向单词边界。我有一个字符串要检查它是否包含变量值。 我不知道如何作为变量值和单词边界属性传递给regexp 比如说:Javascript 将变量传递给具有字边界的RegExp,javascript,regex,Javascript,Regex,我必须传递给变量的RegExp值,并指向单词边界。我有一个字符串要检查它是否包含变量值。 我不知道如何作为变量值和单词边界属性传递给regexp 比如说: var sa="Sample"; var re=new RegExp(/\b/+sa); alert(re.test("Sample text")); 我尝试了一些解决问题的方法,但仍然无法做到:(使用此:re=new RegExp(“\\b”+sa) 正如@RobW所提到的,您可能需要退出sa 请参见:如果要获取所有出现的(g),请不区分
var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));
我尝试了一些解决问题的方法,但仍然无法做到:(使用此:
re=new RegExp(“\\b”+sa)
正如@RobW所提到的,您可能需要退出sa
请参见:如果要获取所有出现的(
g
),请不区分大小写(i
),并使用边界,使其不是另一个单词中的一个单词(\\b
):
例如:
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.
eval
?听说过RegExp
构造函数吗?别忘了转义用户输入(sa
),除非输入也可以是正则表达式。您的答案与我正在搜索的内容最为接近。您使用的引号是什么,将变量与${swap}
@AlexanderDixon导入的文档在哪里?元素\u text.match(new RegExp(匹配选项\u text,'gi'))
我想用^$
开始和结束分隔符传递“匹配选项\u文本”变量。下面是我所要求的更好的表示形式。
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.