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 相关文章推荐
不同Jquery版本引发的问题解决
Oct 14 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
Jan 02 Javascript
angular.bind使用心得
Oct 26 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
解决jquery无法找到其他父级子集问题的方法
May 10 Javascript
jquery通过name属性取值的简单实现方法
Jun 20 Javascript
详解如何使用 vue-cli 开发多页应用
Dec 16 Javascript
Vue中的字符串模板的使用
May 17 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
Sep 16 Javascript
Vue 实现输入框新增搜索历史记录功能
Oct 15 Javascript
three.js着色器材质的内置变量示例详解
Aug 16 Javascript
vue3.0自定义指令(drectives)知识点总结
Dec 27 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
php+oracle 分页类
2006/10/09 PHP
PHP Google的translate API代码
2008/12/10 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
php实现paypal 授权登录
2015/05/28 PHP
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
jquery操作select大全
2014/04/25 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
js实现右键菜单功能
2016/11/28 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
vue使用recorder.js实现录音功能
2019/11/22 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
介绍Python中的__future__模块
2015/04/27 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
python设置环境变量的作用和实例
2019/07/09 Python
使用pip安装python库的多种方式
2019/07/31 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
自主实习接收函
2014/01/13 职场文书
信息员培训方案
2014/06/12 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
八项规定整改方案
2014/10/01 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS