一段文本:
<span>target</span> target <div>target</div>
我想只替换没有被标签包裹的 target ,如果被标签包裹则忽略,应该怎么匹配啊,感谢感谢。
<span>target</span> target <div>target</div>
我想只替换没有被标签包裹的 target ,如果被标签包裹则忽略,应该怎么匹配啊,感谢感谢。
第 1 条附言 · 2022 年 7 月 20 日
用左右两个环视的方法 (?<!>)target(?!<\/.+>) 虽然不太严谨,但是能满足我的需求了。
5 条回复 • 2022-07-20 17:21:34 +08:00
|
1
xiangyuecn 2022 年 7 月 20 日
'<span>target</span> target <div>target</div>'.replace(/(<\/\w+>)([^<]+)(<(?!\/))/, "$1 服不服 $3");
|
|
2
tagtag OP @xiangyuecn 感谢,但是这个好像不能通用,用分组应该不行。
|
|
3
duan602728596 2022 年 7 月 20 日 这种 html 的处理不推荐使用正则,建议转换成树处理。浏览器内原生使用 DOMparser ,node 端推荐用 jsdom 。
|
|
4
autoxbc 2022 年 7 月 20 日
所有正则教程都应该告诉用户「什么情况下不要用正则」
|
|
5
lululau 2022 年 7 月 20 日
楼上说得对,其实这题他不会
|