搜索关键字replace替换,避开alt title属性中的关键字

文章讲述了在批量替换文本时如何使用正则表达式避免替换HTML中的关键词,尤其是那些出现在超链接和属性(如alt,title)内的关键词。提出了两种情况的解决方案,一种是排除属性中的关键词,另一种是排除链接中的关键词,并提供了相应的正则表达式和替换方法。
摘要由CSDN通过智能技术生成

这个问题不是简单的一个批量replace那么简单,要考虑到已经存在的超链接,不能将里面的文字再次替换为超链接,还有就是图片的alt属性,或者其他标签的title属性,里面的文字也不该被替换。

情景一:排除属性中的关键词

匹配的正则为:关键词[^<]*>,所以排除这个关键词的正则为:关键词?!([^<]*>)。

情景二:排除链接中的关键词

匹配的正则为:关键词[^<]*<\/a>,所以排除这个关键词的正则为:关键词?!([^<]*<\/a>)。

-------整合两种情况的结果为:var reg=/关键词(?!([^<]*>)|([^<]*<\/a>))/ig;-----

1.关键字要替换成的内容 这里加红加粗

let replaceString = '<span style="color: #fd2701;font-weight: 900;font-size: 18px;" class="search-item">' + keyWords + "</span>";

2.正则

let reg=new RegExp(keyWords+"(?!([^<]*>)|([^<]*<\/a>))","g");

3.替换

c为要进行搜索的文本内容

c = c.toString().replace(reg,replaceString);

内容转自:https://www.cnblogs.com/hpnet/p/6417861.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值