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代码
Mar 05 Javascript
javascript 表单的友好用户体现
Jan 07 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
Sep 28 Javascript
javascript 闭包疑问
Dec 30 Javascript
Jquery实现简单的动画效果代码
Mar 18 Javascript
jQuery实现下拉框左右选择的简单实例
Feb 22 Javascript
JavaScript ParseFloat()方法
Dec 18 Javascript
AngularJs 常用的过滤器
May 15 Javascript
angular+webpack2实战例子
May 23 Javascript
webpack4之SplitChunksPlugin使用指南
Jun 12 Javascript
three.js 如何制作魔方
Jul 31 Javascript
vue 中的动态传参和query传参操作
Nov 09 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
模拟flock实现文件锁定
2007/02/14 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
python开发之字符串string操作方法实例详解
2015/11/12 Python
python函数的5种参数详解
2017/02/24 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python使用tornado实现登录和登出
2018/07/28 Python
Python重新加载模块的实现方法
2018/10/16 Python
python标记语句块使用方法总结
2019/08/05 Python
python实例化对象的具体方法
2020/06/17 Python
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
指针和引用有什么区别
2013/01/13 面试题
服装创业计划书范文
2014/02/05 职场文书
绿色城市实施方案
2014/03/19 职场文书
2014年涉外离婚协议书范本
2014/11/20 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
高二数学教学反思
2016/02/18 职场文书
React列表栏及购物车组件使用详解
2021/06/28 Javascript