在写一通过SPHINX开源搜索出来的结果集中,对其搜索关键字高亮显示 php版代码:
function highLight($str, $keywords, $color = "red") { if (empty($keywords)) { return $str; } $keywords = split("[ \t\r\n,]+", $keywords); foreach($keywords as $val) { $tvar = eregi($val, $str, $regs); $finalrep = "<font color=". $color . ">" . $regs[0] . "</font>"; } $str = str_ireplace($regs[0], $finalrep, $str); return $str; }
上面代码中的$keywords = split("[ \t\r\n,]+", $keywords);一句是分割搜索关键字,比如你可以自己修改成你的分割格式
JS版代码:
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"));
|