JS实现关键词高亮显示正则匹配


Posted in Javascript onJune 22, 2018

html 和ajax 部分就不写了,只需将需要匹配的文字传进去就可以了 

比如匹配后台传回的字符串data.content中的关键词:直接调用:

data.content = highLightKeywords(data.content,keywords)即可

 以下两个函数分辨是匹配1:匹配关键词words中每一个字符,2:匹配整个关键词words

//高亮关键字 text =>内容 words:关键词  tag 被包裹的标签
//匹配每一个关键字字符
function highLightKeywords(text, words, tag) {
tag = tag || 'span';// 默认的标签,如果没有指定,使用span
var i, len = words.length, re;
for (i = 0; i < len; i++) {
// 正则匹配所有的文本
re = new RegExp(words[i], 'g');
if (re.test(text)) {
text = text.replace(re, '<'+ tag +' class="highlight">$&</'+ tag +'>');
}
}
}
return text;
}
//匹配整个关键词 不拆分
function highlight(text, words, tag) {
// 默认的标签,如果没有指定,使用span
tag = tag || 'span';
var i, len = words.length,
re;
//匹配每一个特殊字符 ,进行转义
var specialStr = ["*", ".", "?", "+", "$", "^", "[", "]", "{", "}", "|", "\\", "(", ")", "/", "%"]; 
$.each(specialStr, function(i, item) {
if(words.indexOf(item) != -1) {
words = words.replace(new RegExp("\\" + item, 'g'), "\\" + item);
}
});
//匹配整个关键词
re = new RegExp(words, 'g');
if(re.test(text)) {
text = text.replace(re, '<' + tag + ' class="highlight">$&</' + tag + '>');
}
return text;
}

总结

以上所述是小编给大家介绍的JS实现关键词高亮显示正则匹配,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js自带函数备忘 数组
Dec 29 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
Jan 15 Javascript
jquery用offset()方法获得元素的xy坐标
Sep 06 Javascript
JSON遍历方式实例总结
Dec 07 Javascript
Javascript实现单例模式
Jan 24 Javascript
JS中的forEach、$.each、map方法推荐
Apr 05 Javascript
jQuery如何解决IE输入框不能输入的问题
Oct 08 Javascript
jQuery EasyUi 验证功能实例解析
Jan 06 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
vue中 this.$set的用法详解
Sep 06 Javascript
请求时token过期自动刷新token操作
Sep 11 Javascript
vue动态合并单元格并添加小计合计功能示例
Nov 26 Vue.js
JS获取指定月份的天数两种实现方法
Jun 22 #Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 #Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 #Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 #Javascript
JavaScript 下载svg图片为png格式
Jun 21 #Javascript
MVVM 双向绑定的实现代码
Jun 21 #Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 #Javascript
You might like
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
ExtJS 入门
2010/10/29 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
详解vue中computed 和 watch的异同
2017/06/30 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
js实现随机点名程序
2020/09/17 Javascript
js实现图片实时时钟
2020/01/15 Javascript
js实现简单的打印表格
2020/01/15 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
Python continue语句用法实例
2014/03/11 Python
Python使用新浪微博API发送微博的例子
2014/04/10 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
详解python中的hashlib模块的使用
2019/04/22 Python
python设置随机种子实例讲解
2019/09/12 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
咖啡厅创业计划书范本
2014/01/22 职场文书
中专自我鉴定
2014/02/05 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书