关键字高亮显示(JavaScript)

屏蔽HTML标签,支持多关键字(以空格间隔),关键字内可含有特殊字符

关键字高亮显示
<! 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 >
< title > 关键字高亮显示 </ title >
</ head >
< body >
< div class ="result" id ="result" >
< img src ="" />< div > 博客园是面向软[123]件开发者的高品质网络div媒体和社区 </ div >
   < span > 博客园一直致力于为开发者打造更优秀的网络平台 </ span >
   < div > 博客园是面向软件开发者的高品质网络媒体和社区 </ div >
</ div >

< script >

function SearchHighlight(idVal,keyword)
{
var pucl = document.getElementById(idVal);
if ( "" == keyword) return ;
var temp = pucl.innerHTML;
var htmlReg = new RegExp( " \<.*?\> " , " i " );
var arrA = new Array();
// 替换HTML标签
for ( var i = 0 ; true ;i ++ )
{
var m = htmlReg.exec(temp);
if (m)
{
arrA[i]
= m;
}
else
{
break ;
}
temp
= temp.replace(m, " {[( " + i + " )]} " );
}
words
= unescape(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 < arrA.length;i ++ )
{
temp
= temp.replace( " {[( " + i + " )]} " ,arrA[i]);
}
pucl.innerHTML
= temp;
}
SearchHighlight(
" result " , " 博客园 的 div [123] " );
</ script >

</ body >
</ html >

转载于:https://www.cnblogs.com/heihaozi/archive/2010/09/01/1815197.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值