首页 > 解决方案 > 替换字符串(带和不带括号),URL 除外

问题描述

我正在尝试用单词作为链接替换 ​​CMS 文章中的某些单词。

这是一个网站,我想通过文章 ID 将某些单词链接到不同的文章。

到目前为止,这是我的代码:

let replace = ' (' + word + ') ';
html = html.replace(new RegExp(replace +'(?!(.(?!<a))*</a>)(?!(.(?!<img))*</img>)','i'), ' <span id="' + element.id+ '">' + replace + '</span> ');

现在我得到关于我的词的链接,如“示例”或“快乐”或“代码”,但我也希望它适用于(示例)或(快乐)或(代码)

我试图像这样进行第二次替换:

let replace2 = ' \(' + word + '\) ';
html = html.replace(new RegExp(replace2 +'(?!(.(?!<a))*</a>)(?!(.(?!<img))*</img>)','i'), ' <span id="' + element.id+ '">' + replace2 + '</span> ');

但它不是这样工作的......

有任何想法吗?- 也许我应该使用完全不同的正则表达式,但到目前为止很多替换了图像和普通链接中的单词。这个可行,但我不是专家...

标签: javascriptregex

解决方案


推荐阅读