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自动显示最后更新时间
Mar 15 Javascript
javascript 处理事件绑定的一些兼容写法
Dec 24 Javascript
文字不间断滚动(上下左右)实例代码
Apr 21 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
Oct 10 Javascript
JS实现选择TextArea内文本的方法
Aug 03 Javascript
js简单实现Select互换数据的方法
Aug 17 Javascript
chrome调试javascript详解
Oct 21 Javascript
漫谈JS引擎的运行机制 你应该知道什么
Jun 15 Javascript
JS给按钮添加跳转功能类似a标签
May 30 Javascript
Js中async/await的执行顺序详解
Sep 22 Javascript
安装vue-cli报错 -4058 的解决方法
Oct 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
PHP源码之explode使用说明
2011/08/05 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
php解析xml方法实例详解
2015/05/12 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
动态控制Table的js代码
2007/03/07 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
理解javascript闭包
2015/12/15 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
python端口扫描系统实现方法
2014/11/19 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
python statsmodel的使用
2020/12/21 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
捷克玩具商店:Bambule
2019/02/23 全球购物
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
打架检讨书100字
2014/01/19 职场文书
英语教育专业自荐信
2014/05/29 职场文书
留学生求职信
2014/06/03 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
2014年民政工作总结
2014/11/26 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书