【发布时间】:2011-12-14 10:42:32
【问题描述】:
我正在尝试编写一个高亮插件,并希望保留 HTML 格式。使用javascript进行替换时是否可以忽略字符串中之间的所有字符?
以以下为例:
var string = "Lorem ipsum dolor span sit amet, consectetuer <span class='dolor'>dolor</span> adipiscing elit.";
我希望能够实现以下目标(将 'dolor' 替换为 'FOO'):
var string = "Lorem ipsum FOO span sit amet, consectetuer <span class='dolor'>FOO</span> adipiscing elit.";
或者甚至是这个(将“span”替换为“BAR”):
var string = "Lorem ipsum dolor BAR sit amet, consectetuer <span class='dolor'>dolor</span> adipiscing elit.";
我非常接近在此处找到 tambler 给出的答案:Can you ignore HTML in a string while doing a Replace with jQuery?,但由于某种原因,我无法获得公认的答案。
我对正则表达式完全陌生,因此我们将不胜感激。
【问题讨论】:
-
Jon,试图用正则表达式解析 html 是出了名的困难。 stackoverflow.com/questions/1732348/…
-
您应该解析 HTML,然后在每个文本节点上递归迭代。
-
@graphicdivine 他并没有试图解析它,他只是想改变一个单词而不修改元素内的任何内容
-
" 是否可以忽略字符串中 之间的所有字符" - 如果字符串包含类似“即使 4 5 Lorem ipsum dolor span 5 > 4."
标签: javascript regex