使用正则表达式连续重复的单词

时间:2016-04-22 13:57:21

标签: javascript regex

var str="Foo bar bar end."
var word="bar"
var regex = new RegExp("([\\s]|^|>)("+word+")(<|[\\s]|$)", "gi");
str=str.replace(regex,' <span class="selected">$2</span> ');

结果:

Foo <span class="selected">bar</span> bar end.

为什么只有第一个bar发生变化?

1 个答案:

答案 0 :(得分:2)

由于重叠匹配。即,您的上一个捕获组使用尾随分隔符。为了不使用以下字符,将最后一个捕获组更改为正向前瞻模式,该模式不会消耗任何字符但会执行断言。

body