[正则表达式]如何高亮显示搜索关键字
2008-07-29 06:13
826 查看
问题发生在站内搜索,
比如,以“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>
比如,以“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>
相关文章推荐
- 使用正则表达式实现搜索关键字高亮显示
- ASP.NET使用正则表达式实现搜索关键字高亮显示
- 使用正则表达式实现搜索关键字高亮显示
- 使用正则表达式实现搜索关键字高亮显示
- 在(ASP+MSSQL)全文本搜索中如何用正则表达式实现类似百度的显示效果?
- 常用正则表达式及关键字高亮显示方法
- 如何在搜索页面中高亮显示关键字
- JavaScript正则方法replace实现搜索关键字高亮显示
- 如何:使用正则表达式搜索字符串
- ios中 搜索关键字在结果中高亮显示
- js 搜索关键字,文章中关键字高亮显示
- php站内搜索并高亮显示关键字的实现代码
- Lucene+HighLighter 搜索关键字高亮显示
- WPF搜索关键字高亮显示
- 使搜索关键字高亮显示
- Vi/Vim 使用小窍门,如何消除搜索后的关键字高亮
- php站内搜索并高亮显示关键字的实现代码
- 如何在自己的网站输入关键字跳到百度搜索,并显示搜索内容呢?
- 如何高亮显示搜索的结果---Index Service
- 按关键字搜索后将关键字高亮显示!