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 相关文章推荐
JavaScript中使用构造函数实现继承的代码
Aug 12 Javascript
js 操作select和option常用代码整理
Dec 13 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
javascript自动给文本url地址增加链接的方法分享
Jan 20 Javascript
jQuery插件slider实现拖动滑块选取价格范围
Apr 30 Javascript
JavaScript动态创建form表单并提交的实现方法
Dec 10 Javascript
chrome浏览器如何断点调试异步加载的JS
Sep 05 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
微信小程序wx.previewImage预览图片实例详解
Dec 07 Javascript
JavaScript 空间坐标的使用
Aug 19 Javascript
vue 实现click同时传入事件对象和自定义参数
Jan 29 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
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
js实现计算器功能
2020/08/10 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
python logging日志模块以及多进程日志详解
2018/04/18 Python
python如何查看微信消息撤回
2018/11/27 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
冰淇淋店创业计划书范文
2013/12/27 职场文书
仓库规划计划书
2014/04/28 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
JavaCV实现照片马赛克效果
2022/01/22 Java/Android
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
Golang bufio详细讲解
2022/04/21 Golang
移除Selenium中window.navigator.webdriver值
2022/06/10 Python