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实现继承机制之调用call()与apply()的方法详解
May 07 Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
Aug 27 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
Jan 24 Javascript
jQuery插件autocomplete使用详解
Feb 04 Javascript
详解vue 单页应用(spa)前端路由实现原理
Apr 04 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
Jul 26 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
JavaScript实现轮播图效果代码实例
Sep 28 Javascript
javascript实现前端成语点击验证
Jun 24 Javascript
小程序实现简单语音聊天的示例代码
Jul 24 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 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
PHP4实际应用经验篇(6)
2006/10/09 PHP
一个用php实现的获取URL信息的类
2007/01/02 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
php生成动态验证码gif图片
2015/10/19 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
node.js基础知识汇总
2020/08/25 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
Python3 Random模块代码详解
2017/12/04 Python
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
python通过zabbix api获取主机
2018/09/17 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
pytorch 修改预训练model实例
2020/01/18 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
关于是否需要写商业计划书
2014/02/07 职场文书
小学课外活动总结
2014/07/09 职场文书
稽核岗位职责
2015/02/10 职场文书
男生贾里读书笔记
2015/06/30 职场文书
关于感恩的作文
2019/08/26 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
vue2实现provide inject传递响应式
2021/05/21 Vue.js