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 相关文章推荐
JQuery中DOM实现事件移除的方法
Jun 13 Javascript
使用JavaScript的AngularJS库编写hello world的方法
Jun 23 Javascript
JavaScript制作简单分页插件
Sep 11 Javascript
Angular ng-repeat指令实例以及扩展部分
Dec 26 Javascript
JavaScript实现选中文字提示新浪微博分享效果
Jun 15 Javascript
BootStrap数据表格实例代码
Sep 13 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
详解vue-cli 脚手架 安装
Apr 16 Javascript
javascript面向对象创建对象的方式小结
Jul 29 Javascript
javascript实现弹幕墙效果
Nov 28 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
JavaScript中isPrototypeOf函数
Nov 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
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
JSON 数据格式详解
2017/09/13 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
使用python实现画AR模型时序图
2019/11/20 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
物流管理专业职业生涯规划书
2014/01/06 职场文书
面试后的感谢信范文
2014/02/01 职场文书
《四季》教学反思
2014/04/08 职场文书
个性车贴标语
2014/06/24 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
明星邀请函
2015/02/02 职场文书
计算机实训心得体会
2016/01/14 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
bose降噪耳机音能消除人声吗
2022/04/19 数码科技