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中字符串的定义示例代码
Dec 19 Javascript
用js判断输入是否为中文的函数
Mar 10 Javascript
jQuery中:header选择器用法实例
Dec 29 Javascript
JavaScript中constructor()方法的使用简介
Jun 05 Javascript
Web前端开发工具——bower依赖包管理工具
Mar 29 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
Sep 20 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
Mar 09 jQuery
vue项目实现表单登录页保存账号和密码到cookie功能
Aug 31 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
Feb 05 Javascript
es6 super关键字的理解与应用实例分析
Feb 15 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
Mar 02 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中使用curl_init函数的说明
2010/11/02 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python正则表达式使用范例分享
2016/12/04 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
Django组件cookie与session的具体使用
2019/06/05 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
土木工程毕业生自荐信
2013/09/21 职场文书
挂职思想汇报
2013/12/31 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
学生退学证明
2015/06/23 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
PL350与SW11的比较
2021/04/22 无线电
golang slice元素去重操作
2021/04/30 Golang