如何在不替换节点属性的情况下替换文本

时间:2014-03-26 13:54:01

标签: javascript jquery html string replace

假设我有一个HTML字符串

var _str = <div>The European languages are members of the same family. <div class="same">Their separate existence is a myth.</div> For science, music, sport, etc, Europe uses the same vocabulary. The languages only differ in their grammar, <div class="same">their pronunciation and their most common words.</div></div>

我想将文字same替换为<span class="highlighted">same</span>

我正在_str.replace('same', '<span class="highlighted">same</span>');,所以它也将class="same"替换为class="<span class="highlighted">same</span>"

任何人都可以帮我解决如何只替换节点内的任何文本(&lt;&gt;)吗?

2 个答案:

答案 0 :(得分:0)

_str.replace(/([^"])same([^"])/g, '$1<span class="highlighted">same</span>$2');

如您所述,此解决方案仅限于此特定字符串。如果您只想替换HTML标记之间的文本,解析HTML将是最安全的选项。

答案 1 :(得分:0)

一个简单的解决方案是在相同的&#39;之前添加一个空格,如下所示:

_str.replace(' same', ' <span class="highlighted">same</span>');