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鼠标悬停特效具体方法
Jun 17 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
javascript实现textarea中tab键的缩排处理方法
Jun 26 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
Jul 22 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
Aug 09 Javascript
js实现input密码框显示/隐藏功能
Sep 10 Javascript
微信小程序点餐系统开发常见问题汇总
Aug 06 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
Aug 27 Javascript
Layui表格监听行单双击事件讲解
Nov 14 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
Oct 13 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
Nov 30 Javascript
解决elementui表格操作列自适应列宽
Dec 28 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
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
python显示天气预报
2014/03/02 Python
跟老齐学Python之正规地说一句话
2014/09/28 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
Python实现把类当做字典来访问
2019/12/16 Python
python中字典增加和删除使用方法
2020/09/30 Python
python绘图模块之利用turtle画图
2021/02/12 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
JAVA程序员面试题
2012/10/03 面试题
爱情寄语大全
2014/04/09 职场文书
融资合作协议书范本
2014/10/17 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
中秋节慰问信
2015/02/15 职场文书
单位政审意见范文
2015/06/04 职场文书