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 相关文章推荐
JS 进度条效果实现代码整理
May 21 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
Aug 31 Javascript
JavaScript隐式类型转换
Mar 15 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
浅析$(function) ready和onload 的区别
Sep 03 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
Apr 01 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
Jun 20 Javascript
JavaScrip关于创建常量的知识点
Dec 07 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
Jun 01 Javascript
vue中如何自定义右键菜单详解
Dec 08 Vue.js
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以及MYSQL日期比较方法
2012/11/29 PHP
浅析php学习的路线图
2013/07/10 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
django连接mysql配置方法总结(推荐)
2018/08/18 Python
python3转换code128条形码的方法
2019/04/17 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
苹果Mac升级:MacSales.com
2017/11/20 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
支部鉴定材料
2014/06/02 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
超市创业计划书
2014/09/15 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
观后感开头
2015/06/19 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
你知道Java Spring的两种事务吗
2022/03/16 Java/Android