当前位置:主页 > javascript教程 > JS实现关键词高亮显示正则匹配

JS如何实现关键词高亮显示正则匹配功能

发布:2020-01-27 12:35:54 55


给网友们整理javascript相关的编程文章,网友闻梓蓓根据主题投稿了本篇教程内容,涉及到js、关键词高亮、正则匹配、JS实现关键词高亮显示正则匹配相关内容,已被551网友关注,相关难点技巧可以阅读下方的电子资料。

JS实现关键词高亮显示正则匹配

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实现关键词高亮显示正则匹配,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!


参考资料

相关文章

  • iPhone手机上搭建nodejs服务器的具体方法

    发布:2019-12-06

    这篇文章主要介绍了iPhone手机上搭建nodejs服务器步骤方法,本文给出了详细的操作步骤以及操作命令,需要的朋友可以参考下


  • 实例讲解js实现日期显示操作

    发布:2020-03-17

    下面小编就为大家带来一篇js实现日期显示的一些操作(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • vue不通过路由直接获取url中参数的方法示例

    发布:2022-04-02

    通过url传递参数是我们在开发中经常用到的一种传参方法,但通过url传递后改如果获取呢?下面这篇文章主要给大家介绍了关于vue如何不通过路由直接获取url中参数的相关资料,需要的朋友可以


  • 用C/C++来实现 Node.js 的模块(二)

    发布:2022-07-12

    为网友们分享了关于Node的教程,上篇文章的主要内容讲诉了用C/C++来实现 Node.js 的模块,本文更深一步继续探讨这个问题,有需要的朋友可以参考下


  • JavaScript Canvas绘制圆形时钟效果代码实例

    发布:2020-03-17

    这篇文章主要为大家详细介绍了JavaScript Canvas绘制圆形时钟效果的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Vue.js中使用Mixins的方法详解

    发布:2020-06-03

    本篇文章主要介绍了在Vue.js中使用Mixins的方法,Vue的Mixins是非常实用的编程方式,可以使代码变得容易理解,有兴趣的一起来了解一下


  • JS实现发送短信验证后按钮倒计时功能代码

    发布:2019-12-19

    这篇文章主要介绍了JS实现发送短信验证后按钮倒计时功能防止刷新倒计时失效问题,在项目开发中经常会用到此功能,下面小编通过本文给大家分享JS实现发送短信验证后按钮倒计时功能(防止


  • QQ跳转支付宝并自动领红包的JS脚本代码

    发布:2019-12-08

    这篇文章主要给大家分享介绍了一个QQ跳转支付宝并自动领红包脚本,这个脚本应该是最新的,测试后是可以使用的,文中给出了完整的示例代码和使用方法,需要的朋友可以参考借鉴,下面随


网友讨论