正则动态匹配关键字高亮(不能匹配HTML标签)

index.html

<div class="aa"></div>

index.css

mark {
    background: red;
    color: blue;
  }

index.js

let str = '这是<span>世界杯span</span>';
let keyword = 'span';
// 这里采用构造函数的方式初始化正则表达式对象 因为可以使用变量,字面量的方式不能使用变量
let regExp = new RegExp(`(?<!<\/?)${keyword}(?!\/?>)`, 'g');
document.getElementsByClassName('aa')[0].innerHTML = str.replace(regExp, '<mark>$&</mark>')

效果图前后


效果前页面.png

效果前html.png

效果后页面.png

效果后html.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容