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 相关文章推荐
Prototype 学习 Prototype对象
Jul 12 Javascript
jQuery extend 的简单实例
Sep 18 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
Aug 18 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
全面总结Javascript对数组对象的各种操作
Jan 22 Javascript
node下使用UglifyJS压缩合并JS文件的方法
Mar 07 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
JS实现的排列组合算法示例
Jul 16 Javascript
taro小程序添加骨架屏的实现代码
Nov 15 Javascript
一起深入理解js中的事件对象
Feb 06 Javascript
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上传图片、删除图片实现代码
2010/05/12 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
详解Vue的七种传值方式
2021/02/08 Vue.js
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
Python中删除文件的程序代码
2011/03/13 Python
Python基类函数的重载与调用实例分析
2015/01/12 Python
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
对python周期性定时器的示例详解
2019/02/19 Python
简单了解python变量的作用域
2019/07/30 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
《英英学古诗》教学反思
2014/04/11 职场文书
中国梦团日活动总结
2014/07/07 职场文书
高考1977观后感
2015/06/04 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
外出听课学习心得体会
2016/01/15 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android