博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[正则表达式]如何高亮显示搜索关键字

Posted on 2008-07-29 06:13  快乐家++  阅读(522)  评论(0编辑  收藏  举报

 

问题发生在站内搜索,
比如,以“2004”为关键字,查到的结果为:
<li><a href="/news/20041025114305.htm">华北院召开2004年三季度工作总结会议</a></li>

现欲将其中的关键字“2004”替换为红色:
<li><a href="/news/20041025114305.htm">华北院召开<font color=red>2004</font>年三季度工作总结会议</a></li>

当然,网址中的“/news/2004......”是不能替换的。

这个处理过程由客户端的JavaScript来完成(不能由服务器来完成。)
区分大小写

 

 

 

 

 

 

 

//(注意:关键字不能包含[].*\/{}等特殊字符)

<script>
function highLight(str,key,color){
  keyE
=key.replace(/\\/g,"\\\\").replace(/\//g,"\\/").replace(/\"/g,"\\\"").replace(/\'/g,"\\\'").replace(/\r/g,"\\r").replace(/\n/g,"\\n");
  return(str.replace(eval(
"\/(>.*)"+keyE+"(.*<)\/gi"),"$1"+key.fontcolor(color)+"$2"));
}
strS=
"<li><a href=\"/news/20041025114305.htm\">华北院召开2004年三季度工作总结会议</a></li>";
document.write(highLight(strS,
"2004","red"));
</script>