jquery实现页面关键词高亮显示的方法
本文实例讲述了jquery实现页面关键词高亮显示的方法。分享给大家供大家参考。具体分析如下:
通过jquery对页面搜索关键词进行高亮显示
支持中文多词页面中高亮显示
1.JavaScript代码如下:
jQuery.fn.extend({
highlight:function(search,configs){
if(typeof(search)=='undefined')return;
varconfigs= jQuery.extend({
insensitive:1,//是否匹配大小写 0匹配1不匹配
hls_class:'highlight',//高亮后的class
clear_last:true,//清除原来高亮的结果
},configs);
if(configs.clear_last){
$(this).find("strong."+configs.hls_class).each(function(){
$(this).after($(this).text());
$(this).remove();
})
}
returnthis.each(function(){
if(typeof(search)=="string"){
$(this).highregx(search,configs);
}elseif(search.constructor===Array){
for(varqueryinsearch){
varsearch_str=$.trim(search[query]);
if(search_str!="")$(this).highregx(search_str,configs);
}
}
});
},
highregx:function(query,configs){
query=this.unicode(query);
varregex=newRegExp("(<[^>]*>)|("+query+")",configs.insensitive?"ig":"g");
this.html(this.html().replace(regex,function(a,b,c){
return(a.charAt(0)=="<")?a:"<strongclass=\""+configs.hls_class+"\">"+c+"</strong>";
}));
},
unicode:function(s){
varlen=s.length;
varrs="";
s=s.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");
for(vari=0;i<len;i++){
if(s.charCodeAt(i)>255)
rs+="\\u"+s.charCodeAt(i).toString(16);
elsers+= s.charAt(i);
}
returnrs;
}
});
2.highlight插件点击此处下载。
希望本文所述对大家的jQuery程序设计有所帮助。