虾米链接:http://2814704901.iteye.com/blog/1930420
Js实现高亮显示,也是本人在网上看到的并运用到了舆情监控系统中。
这个例子仅仅使用与字体较少的关键字 如果关键字较长 则应该使用中文分词进行处理。
Luence中有专门的高亮显示架包 之前的博客中也简单提过
Js代码如下:
//pucl是你要进行高亮显示的标签对象 如div中的内容或者td中的内容
var pucl=$("#div");
keyword 就是你要高亮显示的字体 如:“北京”
function SearchHighlight(pucl, keyword) {
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;
}