)("+word+")($2 '); 结果: F-6ren">
gpt4 book ai didi

javascript - 使用正则表达式更改的连续重复单词

转载 作者:行者123 更新时间:2023-11-29 21:29:20 27 4
gpt4 key购买 nike

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 - 使用正则表达式更改的连续重复单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36795796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com