连续重复的单词以使用正则表达式进行更改
Consecutive duplicate words to change with 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
改变?
因为匹配
重叠。 即,最后一个捕获组使用尾随分隔符。为了使其不消耗以下字符,请将最后一个捕获组更改为积极的前瞻模式,该模式不会消耗任何字符,但会执行断言。
var regex = new RegExp("([''s>]|^)("+word+")(?=[<''s]|$)", "gi");
str=str.replace(regex,'$1<span class="selected">$2</span>');
相关文章:
- 用于匹配不带字符的单词的正则表达式
- 在正则表达式中搜索单词
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 正则表达式用于在javascript中存储单词之前和之后
- 只使用正则表达式匹配单词后面的所有内容
- 用特定的javascript正则表达式替换每个单词
- 正则表达式以更改字符串中的某些单词
- 匹配给定的正则表达式,除非存在给定的单词(lookahead或lookbacking)
- 如何通过JavaScript正则表达式匹配不同语言中的单词
- Javascript 正则表达式在特定单词或数字之后拆分
- 短语中类似单词的正则表达式交替
- 与冒号(不包括冒号)之间的正则表达式单词匹配
- 连续重复的单词以使用正则表达式进行更改
- 用于匹配带空格和不带空格的多个单词的正则表达式
- 如何使用正则表达式 JavaScript 替换具有特定单词的整行
- 使用正则表达式获取多个单词,单词之间留有空格
- 一个具有精确pettern的单词的正则表达式
- JS正则表达式匹配单词,包括用空格括起来的单词
- 使用 JavaScript 正则表达式获取所有没有 HTML 标签的单词
- 如果里面的模式匹配,抓取完整的正则表达式单词