jQuery在不在P,DIV,SPAN,TD之外的html标签内查找/替换html文本

我有一个html文本片段,它是我需要运行查找/替换的页面DOM的一部分,我需要一些帮助来找出创建查找/替换function的最佳方法。

例如,我想获取id =“content”的dom对象的内容,并使用目标搜索短语运行查找替换。

我需要函数用“ The Phrase ”替换它在内容中找到的短语的每个实例,前提是该短语不出现在除div,p,span或td之外的任何标记内标记,并返回替换的xhtml文本。

我可以使用jQuery dom遍历和一些替换方法吗?

这就是我以前寻找搜索字符串的方法。 RegEx检查不属于HTML标记的文本。 在replace函数中, $&引用匹配的字符串。

 var rx = new RegExp('(?![^<]+>)' + searchString, 'gi'); $(this).html(function (i, html) { return html.replace(rx, '$&') }); 

至于不属于任何其他HTML标记,您必须提供一个示例。 这就是它可能变得棘手的地方。

如果你想避免  ,你可以使用这个正则表达式(?![^<&]+[>;])使用John Strickler评论:

 var rx = new RegExp('(?![^<&]+[>;])' + searchString, 'gi'); $(this).html(function (i, html) { return html.replace(rx, '$&') });