js正则表达式替换多个反向引用

时间:2015-12-29 16:25:02

标签: javascript regex

我正在尝试使用正则表达式替换所有匹配组的字符串。 由于正则表达式中的组数不同,我无法使用$ 1 .. $ 9反向引用。

以下是1组的工作示例:

string = 'ab ac';
regex = new RegExp( "(^|\\s)(a)", "ig" );
template = "$1<u>$2</u>";
replace = string.replace(regex, template);

但是当有超过1组时,这种逻辑不起作用:

string = 'ab bc';
regex = new RegExp( "(^|\\s)(a)|(^|\\s)(b)", "ig" );
template = "$1<u>$2</u>";
replace2 = string.replace(regex, template);

我应该使用什么作为&#39;模板&#39;匹配所有组?

这个jsfiddle可能会让它更容易理解: https://jsfiddle.net/wfo3n7rs/

1 个答案:

答案 0 :(得分:3)

您可以将正则表达式更改为:

regex = new RegExp( "(^|\\s)([ab])", "ig" );

<强> Working demo