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 变量基础知识
Nov 07 Javascript
JavaScript 判断指定字符串是否为有效数字
May 11 Javascript
javascript 异步页面查询实现代码(asp.net)
May 26 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
Mar 25 Javascript
jquery单行文字向上滚动效果的实现代码
Sep 05 Javascript
jQuery 中DOM 操作详解
Jan 13 Javascript
javascript自动生成包含数字与字符的随机字符串
Feb 09 Javascript
浅谈Node.js中的定时器
Jun 18 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
Aug 21 Javascript
判断颜色是否合法的正则表达式(详解)
May 03 Javascript
D3.js实现拓扑图的示例代码
Jun 30 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
Aug 27 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 setTime 设置当前时间的代码
2012/08/27 PHP
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
php中socket通信机制实例详解
2015/01/03 PHP
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
深入php内核之php in array
2015/11/10 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
Python函数中不定长参数的写法
2019/02/13 Python
python修改文件内容的3种方法详解
2019/11/15 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
销售总监岗位职责
2014/01/04 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
讲座通知范文
2015/04/23 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书