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调试工具 Javascript Debug Toolkit 2.0.0版本发布
Dec 02 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
May 21 Javascript
javascript setTimeout和setInterval 的区别
Dec 08 Javascript
js中的for如何实现foreach中的遍历
May 31 Javascript
jQuery中closest和parents的区别分析
May 07 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
Dec 08 Javascript
性能优化之代码优化页面加载速度
Mar 01 Javascript
angular2中Http请求原理与用法详解
Jan 11 Javascript
Vue中的字符串模板的使用
May 17 Javascript
JS canvas绘制五子棋的棋盘
May 28 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
May 24 Javascript
微信小程序实现分页加载效果
Nov 19 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
FCKeditor的安装(PHP)
2007/01/13 PHP
php 在线打包_支持子目录
2008/06/28 PHP
php正则表达式(regar expression)
2011/09/10 PHP
PHP进程同步代码实例
2015/02/12 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
js打印纸函数代码(递归)
2010/06/18 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
javascript中FOREACH数组方法使用示例
2016/03/01 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
Node.js中环境变量process.env的一些事详解
2017/10/26 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
今天,小程序正式支持 SVG
2019/04/20 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
陈欧的广告词
2014/03/18 职场文书
2014会计年终工作总结
2014/12/20 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书