我很抱歉发帖(我通常会尝试回避它),但我无法弄清楚我的问题。 我尝试使用 jQuery 和正则表达式替换页面内容中的特定单词。
但是我不想替换 HTML 标签和链接中的单词。 示例 - 这是原始句子:
Let's talk about John. John is a nice guy and rocks. <a href="www.john.com">Click here to meet up John.</a>
如果我想将“John”替换为“Kevin”,它应该变成:
Let's talk about Kevin. Kevin is a nice guy and rocks. <a href="www.john.com">Click here to meet up John.</a>
到目前为止我做了什么:
new RegExp("(?!<a.*?>)John(?!</a>)(?!([^<]+)?>)","g");
它几乎可以完成工作,但对于上面的示例不起作用。它显示:
Let's talk about Kevin. Kevin is a nice guy and rocks. <a href="www.john.com">Click here to meet up Kevin.</a>
抱歉,我对正则表达式了解不多。如果您能帮我的话,我会很高兴。 非常感谢!!
最佳答案
试试这个 friend ! :)
John(?![^<]*</a>)
工作示例:
所以在 javascript 中它会是:
new RegExp("John(?![^<]*</a>)","g");
如果“John”需要不区分大小写,您只需添加 i
标志,当然,像这样:--> new RegExp("John(?![^<] *)","gi
");
关于javascript - jQuery 替换 html 标签和链接之外的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199330/