JavaScript字符串替换 - 如何在替换字符串中使用匹配变量?

cla*_*rkk 10 javascript regex replace

如何在替换字符串中使用模式中的匹配变量?

var regexp = new RegExp('needle', 'ig');
str.replace(regexp, '<span class="marked">//1</span>')
Run Code Online (Sandbox Code Playgroud)

Ein*_*eki 23

尝试

var regexp = new RegExp(something, 'ig');
str.replace(regexp, '<span class="marked">$&</span>')
Run Code Online (Sandbox Code Playgroud)

参考文献:

  • @claekk:$&表示匹配的字符串,$ n表示匹配的第n个组.如果你不使用组匹配应该是优选的(虽然$ 1也应该工作).参见我添加的参考文献 (2认同)

Ove*_*ous 6

在JavaScript中使用反向引用正确的方法是通过$1... $9.

为了让你的例子有用:

var regexp = new RegExp(something, 'ig');
var result = str.replace(regexp, '<span class="marked">$1</span>');
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问:http://www.regular-expressions.info/javascript.html#replace

  • 要使用数字反向引用,您需要将正则表达式括在括号中:`/(needle)/`。否则,使用 Eineki 显示的`$&amp;`。 (2认同)