如何在Javascript中使用正则表达式中的变量

And*_*zia 8 javascript regex jquery

我想在JavaScript中构建一个RegEx,它匹配一个单词而不是它的一部分.我认为像\ bword\b这样的东西效果很好.我的问题是这个词是事先不知道的,所以我想使用一个变量来组装正则表达式,该变量持有要匹配的字符串:

r = "\b(" + word + ")\b";
reg = new RegExp(r, "g");
lexicon.replace(reg, "<span>$1</span>"
Run Code Online (Sandbox Code Playgroud)

我注意到,不起作用.我的想法是用span标记替换段落中的特定单词.有人能帮我吗?

PS:我正在使用jQuery.

Que*_*tin 13

\是正则表达式字符串中的转义字符.

由于您是从字符串组装正则表达式,因此必须转义\它们中的s.

r = "\\b(" + word + ")\\b";
Run Code Online (Sandbox Code Playgroud)

应该做的,虽然我还没有测试过.

你可能不应该使用全局(r尽管可能不是reg).