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自定义函数判断网站访问类型是PC还是移动终端
Jan 10 Javascript
JS获取当前网页大小以及屏幕分辨率等
Sep 05 Javascript
浅谈javascript中字符串String与数组Array
Dec 31 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
Jun 29 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
Vue+SpringBoot开发V部落博客管理平台
Dec 27 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
May 16 Javascript
layui点击弹框页面 表单请求的方法
Sep 21 Javascript
vue点击按钮动态创建与删除组件功能
Dec 29 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
Apr 07 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
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
Vue实现星级评价效果实例详解
2019/12/30 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
《手指教学》反思
2014/02/14 职场文书
大学生评语大全
2014/04/18 职场文书
关于环保的标语
2014/06/13 职场文书
人大调研汇报材料
2014/08/14 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
单位委托书
2014/10/15 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
保护地球的宣传语
2015/07/13 职场文书
python实现简单倒计时功能
2021/04/21 Python