javascript实现页面内关键词高亮显示代码


Posted in Javascript onApril 03, 2014
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-type" content="text/html;charset=utf-8" /> 
<title>关键字高亮显示</title> 
</head> 
<body> 
<div class="result" id="textbox"> 
<p>百度(Nasdaq简称:BIDU)是全球最大的中文搜索引擎,2000年1月由李彦宏、徐勇两人创立于北京中关村,致力于向人们提供“简单,可依赖”的</p> 
<p>信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。</p> 
</div> 
<script> 
function highlight(idVal, keyword) { 
var textbox = document.getElementById(idVal); 
if ("" == keyword) return; 
//获取所有文字内容 
var temp = textbox.innerHTML; 
console.log(temp); 
var htmlReg = new RegExp("\<.*?\>", "i"); 
var arr = new Array(); //替换HTML标签 
for (var i = 0; true; i++) { 
//匹配html标签 
var tag = htmlReg.exec(temp); 
if (tag) { 
arr[i] = tag; 
} else { 
break; 
} 
temp = temp.replace(tag, "{[(" + i + ")]}"); 
} 

// 讲关键词拆分并入数组 
words = decodeURIComponent(keyword.replace(/\,/g, ' ')).split(/\s+/); 
//替换关键字 
for (w = 0; w < words.length; w++) { 
// 匹配关键词,保留关键词中可以出现的特殊字符 
var r = new RegExp("(" + words[w].replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&") + ")", "ig"); 
temp = temp.replace(r, "<b style='color:Red;'>$1</b>"); 
} 
//恢复HTML标签 
for (var i = 0; i < arr.length; i++) { 
temp = temp.replace("{[(" + i + ")]}", arr[i]); 
} 
textbox.innerHTML = temp; 
} 
highlight("textbox","百度,李彦宏"); 
</script> 
</body> 
</html>
Javascript 相关文章推荐
Javascript事件热键兼容ie|firefox
Dec 30 Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 Javascript
angularJS中router的使用指南
Feb 09 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
vue.js的安装方法
May 12 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
Jun 28 Javascript
详解Web使用webpack构建前端项目
Sep 23 Javascript
vue源码学习之Object.defineProperty 对数组监听
May 30 Javascript
js+SVG实现动态时钟效果
Jul 14 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
Apr 03 #Javascript
使用jQuery动态加载js脚本文件的方法
Apr 03 #Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
Apr 03 #Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 #Javascript
document.compatMode的CSS1compat使用介绍
Apr 03 #Javascript
javascript实现des解密加密全过程
Apr 03 #Javascript
无刷新预览所选择的图片示例代码
Apr 02 #Javascript
You might like
php2html php生成静态页函数
2008/12/08 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
js控制div及网页相关属性的代码
2009/12/19 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
vue.js实现价格格式化的方法
2017/05/23 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
连接Python程序与MySQL的教程
2015/04/29 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
详解python中的文件与目录操作
2017/07/11 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
django模板语法学习之include示例详解
2017/12/17 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
python中时间模块的基本使用教程
2019/05/14 Python
Django 限制访问频率的思路详解
2019/12/24 Python
.NET常见笔试题集
2012/12/01 面试题
自荐信格式范文
2013/10/07 职场文书
总经理助理的八要求
2013/11/12 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
关爱老人标语
2014/06/21 职场文书
综治工作汇报材料
2014/10/27 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
怎样写家长意见
2015/06/04 职场文书
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android