gpt4 book ai didi

javascript - 替换不是特定标签子字符串的子字符串

转载 作者:行者123 更新时间:2023-12-02 23:23:05 26 4
gpt4 key购买 nike

我需要替换 HTML 中的关键字并在它们周围放置一个跨度,以便稍后捕获单击事件。

我得到了字符串格式的HTML,我尝试的是使用正则表达式将特定字符串替换为跨度包围的字符串。这一切都工作正常,但问题是它与链接和其他标签匹配。因此,如果关键字与其中的部分匹配,它也会包围其中的部分内容。

我用来替换关键字的代码:

textToBeChanged = textToBeChanged.replace(new RegExp(keyword, 'ig'), keywordWrappedInSpan)

有没有办法扩展它,这样如果它在链接或其他标签中,它就不会替换它?或者也许可以使用 JQuery 的某种方式?

最佳答案

要达到预期结果,请使用下面的按关键字拆分字符串测试

  1. 按单词拆分字符串 - 'test'
  2. 检查字符“”和“”
  3. 相应地使用单词测试更新范围

工作代码示例

var str = '<div> test <a> test </a> </div>'

console.log(str.split('test').map(v => {
if(v.indexOf('<a>') === -1 && v.indexOf('</a>') === -1){
v = v + '<span>test</span>'
}else{
if(v.indexOf('<a>') !== -1){
v = v + 'test'
}
}
return v
}).join(''))

codepen - https://codepen.io/nagasai/pen/rEvvGV?editors=1010

关于javascript - 替换不是特定标签子字符串的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56859342/

26 4 0