JavaScript正则方法replace实现搜索关键字高亮显示

前言

正则表达式是字符串处理工具中强有力的工具.也有人认为这只是一个小玩具,但不管怎么说都离不开它.

这里介绍的是JavaScript的正则表达式的replace方法 ,和实现搜索关键字高亮的功能.

先介绍一下正则表达式的replace方法

replace介绍

w3school原文链接介绍

正则表达式如何使用特殊字符$来表示原来的文本,这是实现搜索高亮的关键,

var str = "asad sad 123 sd qwe21";
str.replace(/\d+/img,"数字");
//这里正确的匹配到了数字,且替换成了中文的数字
console.log(str);//"asad sad 数字 sd qwe数字"
------------------------------------------------------
//看一下如何使用$1,表示被捕获的字符串
var str = "asad sad 123 sd qwe21";
str.replace(/\d+/img,"数字$1数字");
console.log(str);//"asad sad 数字$1数字 sd qwe数字$1数字"
//很显然并没有成功,$1 还是$1,那么如何正确使用呢?
------------------------------------------------------
var str = "asad sad 123 sd qwe21";
str.replace(/(\d+)/img,"数字$1数字");
//这里就正确的匹配了数字并且用$1 表示原字符串并替换
console.log(str);///"asad sad 数字123数字 sd qwe数字21数字"
/*
()在正则里面表示捕获性元组,可以用$1 特殊字符来表示被替换的内容,可以有多个()元组,也就是可以有多个$1,$2 */

开始小试身手

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
 <style>
 b{
 color:red;
 }
 </style>
<div id="poetry">
春江花月夜<br>
作者:张若虚<br>
春江潮水连海平,海上明月共潮生。 <br>
滟滟随波千万里,何处春江无月明! <br>
江流宛转绕芳甸,月照花林皆似霰; <br>
空里流霜不觉飞,汀上白沙看不见。 <br>
江天一色无纤尘,皎皎空中孤月轮。 <br>
江畔何人初见月?江月何年初照人? <br>
人生代代无穷已,江月年年只相似。 <br>
</div>
<input type ="text" id="input" />
</body>
</html>
<script>
//input 输入要查找的字符串
input.onchange = function(){
 //获取要查找的字符串
 var searchVal = input.value;
 // 获取要查找的内容
 var text = poetry.innerHTML;
 //将之前的查找高亮的字符串,取消高亮
 text = text.replace(/<b[^>]*>([^>]*)<\/b[^>]*>/ig,"$1");
 poetry.innerHTML = text;
 //初始化正则表达式,加上括号(),形成可捕获元组.ig表示全局匹配和不区分大小写
 var reg = new RegExp("("+searchVal +")","ig");
 //高亮要查找的字符串
 text = text.replace(reg,"<b>$1</b>");
 poetry.innerHTML = text;
}
</script>

总结

以上所述是小编给大家介绍的JavaScript正则方法replace实现搜索关键字高亮显示,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 用JS将搜索的关键字高亮显示实现代码

    用JS让文章内容指定的关键字加亮 是这样的.. 现在有这些关键字:美容,生活,购物当在文章里头出现这些关键字,就把它加亮显示.. 文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现...不知道怎样来实现这样的功能啊?特此求助 复制代码 代码如下: <script language="JavaScript">function highlight(key) { var key = key.split('|'); for (var i=0; i<key.

  • 可以用来搜索当前页面内容的js代码

    搜索页面内容 var NS4 = (document.layers); var IE4 = (document.all); // window to search. var win = window; var n = 0; function findInPage(str) { var txt, i, found; if (str == "") return false; if (NS4) { if (!win.find(str)) while(win.find(str, false,

  • JS实现表格数据各种搜索功能的方法

    本文实例讲述了JS实现表格数据各种搜索功能.可忽略大小写,模糊搜索,多关键搜索.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html> <html>  <head>   <meta charset="utf-8">   <title></title>   <script type="text/javascript">    window.onl

  • JavaScript实现的搜索及高亮显示功能示例

    本文实例讲述了JavaScript实现的搜索及高亮显示功能.分享给大家供大家参考,具体如下: 情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮, 或者将不匹配的隐藏掉 效果图: html: <div class="contracts-header">名称: <input type="text" value="" id="sea

  • Angularjs实现搜索关键字高亮显示效果

    需求分析: 根据关键字搜索网页内容,并且高亮显示内容中的关键字 细节分析: 1.每次执行搜索操作,需清空上一次结果 2.需区分html标签和正常文本内容,否则为关键字添加样式以后会出现标签内容被显示的情况 代码思路: 利用正则表达式匹配关键字 使用javascript字符串替换的方式,将关键字替换成<span class='red'>关键字</span> 为了避免出现当关键字为 'p' 时候,将标签<p>替换成<<span>p</span>

  • js实现搜索框关键字智能匹配代码

    只要使用搜索引擎的朋友应该都有这样的体会,就是当在搜索框输入关键字的时候,会出现自能匹配现象,这绝对是非常好的用户体验,下面就是一段类似的代码,当然这里只是掩饰,所以只能匹配的数据都是本地固定好的,在实际应用中可以才能够数据库读取数据. 效果图: 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" co

  • JS实现静态页面搜索并高亮显示功能完整示例

    本文实例讲述了JS实现静态页面搜索并高亮显示功能.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS搜索</title> </head> <body> <input id="key-word" class="k

  • JS仿百度搜索自动提示框匹配查询功能

    1. 添加动态加载css文件 不需要引入css css全部在JS动态生成.2. 不需要额外的标签 只需要一个input输入框 并且默认指定一个class类名为 "inputElem" 当然也可以自己配置参数 还需要一个当前父级容器增加一个默认类名 parentCls(也可以自己配置),因为输入框匹配值后需要一个隐藏域 所以需要隐藏域增加一个class "hiddenCls" 当然也支持自己配置参数. 如下代码: 复制代码 代码如下: <div class=&q

  • javascript搜索自动提示功能的实现第1/3页

    使用 jQuery(Ajax)/PHP/MySQL实现自动完成功能一如往常,demo和源码的zip包在文章最后,慢慢欣赏吧! 我觉得我有必要写这个教程,因为曾经见到的大部分关于自动完成的应用程序都只是给你一个程序源码包,然后告诉你怎么使用,而不是告诉你它是如何工作的以及为什么这样做.而知道这些可以让你对这个插件可以进一步的按自己的需求定制(关于这一点我在我的blog里写过不少关于其他应用的文章). 好,我们现在开始. JavaScript代码: 复制代码 代码如下: <script src=&quo

  • javascript 关键字高亮显示实现代码

    关键字高亮显示 我们是一个专业的收集各类脚本学习资料的网站,尽量修正错误打造精品脚本类学习网站,我们为大家游戏脚本资源,源码,软件,asp,php,javascript等编程资料,是网页制作,网络编程,网站建设人士的聚集场所. 提供最新的网络编程.脚本编程.网页制作.网页设计.网页特效,为站长与网络编程从业者提供学习资料. 脚本,vbscript,正则表达式,jquery,dos,bat,批处理,javascript,Photoshop,HTML,div+css,ASP,PHP,ASP.NET

随机推荐