【发布时间】:2019-09-24 20:31:27
【问题描述】:
我想查找不属于另一个单词的文本(让这个工作),但我也想不查找位于 <a> 标记内的文本
"Java <li>Javascript</li> <a href="">Some Java here</a> more java"
var regex2 = new RegExp(`(?<![a-z])Java(?![a-z])`, "gi");
text = text.replace(regex2, '++JavaUpdated++');
上面的工作,但下面的附加环视不起作用
var regex2 = new RegExp(`(?<![a-z])(?<!<a.*)Java(?!.*<\/a>)(?![a-z])`, "gi");
【问题讨论】:
-
谨慎使用正则表达式来解析 HTML。我去过那里 - 当你有嵌套元素时,它本身是不够的。
-
是的,不幸的是我无法避免它,我有一个添加链接的正则表达式,但如果它在 标记内再次找到该单词,它会加倍
-
明白了。我可能有办法解决这个问题……但我不确定你的 HTML 到底是什么样子。例如,我在这里看到了一个不合适的
<li>标签。这可能会改变 DOM 实际变成的样子。 -
抱歉忽略
- 只是在测试一些东西
标签: javascript regex regex-lookarounds