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知识点之&quot;深入理解作用域链&quot;的介绍
Apr 23 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
Dec 10 Javascript
JQuery弹出层示例可自定义
May 19 Javascript
webapp框架AngularUI的demo改造之路
Dec 21 Javascript
Javascript闭包(Closure)详解
May 05 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
Dec 08 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
原生js实现电商侧边导航效果
Jan 19 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
javascript json字符串到json对象转义问题
Jan 22 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
Oct 12 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
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
基于php判断客户端类型
2016/10/14 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
node内置调试方法总结
2018/02/22 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
Python实现远程调用MetaSploit的方法
2014/08/22 Python
Djang中静态文件配置方法
2015/07/30 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
python实现贪吃蛇双人大战
2020/04/18 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
Python利用命名空间解析XML文档
2020/08/10 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
比较基础的php面试题及答案-填空题
2014/04/26 面试题
J2EE是技术还是平台还是框架
2016/08/14 面试题
护士实习自我鉴定
2013/10/22 职场文书
优秀求职信范文分享
2013/12/19 职场文书
服务之星获奖感言
2014/01/21 职场文书
一名老师的自我评价
2014/02/07 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
门球健将观后感
2015/06/16 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python