`
xyh
  • 浏览: 85719 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

[转载]搜索关键字高亮显示

阅读更多

一般情况下,需要对搜索结果进行高亮显示,主要用到正则匹配,

 好像Lucene搜索引擎保护了高亮显示的处理类,但是在服务器端的,就在返回的结果里面就处理了,

js 代码

  1. /*----------------------------------------*\   
  2.  * 使用 js 标记高亮关键词 by markcxz(markcxz@aol.com)  
  3.  * 参数说明:   
  4.  * obj: 对象, 要进行高亮显示的html标签节点.   
  5.  * hlWords: 字符串, 要进行高亮的关键词词, 使用 竖杠(|)或空格 分隔多个词 .   
  6.  * cssClass: 字符串, 定义关键词突出显示风格的css伪类.   
  7.  * 参考资料: javascript HTML DOM 高亮显示页面特定字词 By shawl.qiu  
  8. \*----------------------------------------*/    
  9. function MarkHighLight(obj,hlWords,cssClass){   
  10.   
  11.     hlWords=AnalyzeHighLightWords(hlWords);   
  12.        
  13.     if(obj==null || hlWords.length==0)   
  14.         return;   
  15.     if(cssClass==null)   
  16.         cssClass="highlight";   
  17.     MarkHighLightCore(obj,hlWords);   
  18.        
  19.     //------------执行高亮标记的核心方法----------------------------   
  20.     function MarkHighLightCore(obj,keyWords){   
  21.         var re=new RegExp(keyWords, "i");    
  22.            
  23.         for(var i=0; i<obj.childNodes.length; i++){   
  24.            
  25.             var childObj=obj.childNodes[i];   
  26.             if(childObj.nodeType==3){   
  27.                 if(childObj.data.search(re)==-1)continue;    
  28.                 var reResult=new RegExp("("+keyWords+")""gi");    
  29.                 var objResult=document.createElement("span");   
  30.                 objResult.innerHTML=childObj.data.replace(reResult,"<span class='"+cssClass+"'>$1</span>");                        
  31.                 if(childObj.data==objResult.childNodes[0].innerHTML) continue;    
  32.                 obj.replaceChild(objResult,childObj);                                         
  33.             }else if(childObj.nodeType==1){   
  34.                 MarkHighLightCore(childObj,keyWords);   
  35.             }   
  36.         }   
  37.     }           
  38.   
  39.     //----------分析关键词----------------------   
  40.     function AnalyzeHighLightWords(hlWords)   
  41.     {   
  42.         if(hlWords==nullreturn "";   
  43.         hlWords=hlWords.replace(/\s+/g,"|").replace(/\|+/g,"|");               
  44.         hlWords=hlWords.replace(/(^\|*)|(\|*$)/g, "");   
  45.            
  46.         if(hlWords.length==0) return "";   
  47.         var wordsArr=hlWords.split("|");    
  48.            
  49.         if(wordsArr.length>1){   
  50.             var resultArr=BubbleSort(wordsArr);   
  51.             var result="";   
  52.             for(var i=0;i<resultArr.length;i++){   
  53.                 result=result+"|"+resultArr[i];   
  54.             }                   
  55.             return result.replace(/(^\|*)|(\|*$)/g, "");   
  56.   
  57.         }else{   
  58.             return hlWords;   
  59.         }    
  60.     }       
  61.        
  62.     //-----利用冒泡排序法把长的关键词放前面-----       
  63.     function BubbleSort(arr){           
  64.         var temp, exchange;       
  65.         for(var i=0;i<arr.length;i++){               
  66.             exchange=false;                   
  67.             for(var j=arr.length-2;j>=i;j--){                   
  68.                 if((arr[j+1].length)>(arr[j]).length){                       
  69.                     temp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp;   
  70.                     exchange=true;   
  71.                 }   
  72.             }                   
  73.             if(!exchange)break;   
  74.         }   
  75.         return arr;               
  76.     }   
  77.   
  78. }   
  79. //----------------end------------------------  
分享到:
评论
1 楼 gw_noah 2008-01-08  
         有点启发

相关推荐

    搜索关键字高亮显示

    在IT领域,搜索关键字高亮显示是一项常见的功能,它能够帮助用户快速定位并理解搜索结果中的重要信息。这种技术广泛应用于搜索引擎、文本编辑器、数据分析工具等软件中,提升用户体验,使得查找目标内容更为直观。 ...

    ListView搜索关键字高亮显示

    在实际应用中,当用户进行搜索操作时,能够高亮显示搜索关键字可以显著提升用户体验,因为它帮助用户快速定位到他们关心的信息。在这个主题中,我们将深入探讨如何实现ListView中的搜索关键字高亮显示功能。 首先,...

    如何设置SecureCRT窗口输出代码关键字高亮

    本文将详细介绍如何在SecureCRT中设置关键字高亮显示,帮助用户更高效地工作。 #### 工具/原料 - SecureCRT Version 6.5.0 (build380) - Official Release - December 10, 2009 - 操作系统:Windows 7 旗舰版 64位 ...

    Android搜索关键字高亮显示

    Android搜索关键字高亮显示,意思就是当你输入某个关键字进行搜索时,在搜索到的结果中,您搜索的关键字会以另外的颜色突显出来,给用户更好的视觉体验。 技术文章地址:...

    VB 自绘关键字高亮显示代码编辑器.

    VB 自绘关键字高亮显示代码编辑器是一种专为VB编程设计的工具,它能够提供良好的代码编写体验,增强程序员的工作效率。这个编辑器的特色在于其自绘功能,这意味着它可以自行控制界面的绘制,包括对关键字进行高亮...

    关键字高亮显示、文本解析

    "关键字高亮显示"是一种常见的文本处理技术,它可以帮助用户快速定位和识别关键信息,提高阅读效率。这种技术通常应用于代码编辑器、搜索引擎结果展示、文档阅读器等多个场景。 首先,我们要理解“高亮显示”的概念...

    在RichTextBox中实现关键字高亮显示

    本文将详细讲解如何在C#的WinForms环境中,利用RichTextBox控件实现关键字高亮显示。 首先,我们需要了解`RichTextBox`的基本操作。`RichTextBox`控件提供了丰富的文本格式化功能,包括字体、颜色、样式等设置。在...

    JS 关键字高亮显示

    很好用的JS关键字高亮显示代码 代码简洁 实用

    java swing里支持,js,java编程语言,关键字高亮显示

    在描述中提到的关键字高亮显示,这是一个在文本编辑器或代码查看器中常见的功能,它有助于提高代码可读性和用户体验。关键字高亮通常涉及到以下几个核心概念: 1. **颜色主题**:在Java Swing中,你可以通过自定义...

    Lunene分页关键字高亮显示

    标题 "Lunene分页关键字高亮显示" 暗示了我们正在讨论一个与搜索引擎或数据检索相关的项目,其中涉及到了Lunene(可能是Lucene的误拼),一种广泛使用的全文搜索引擎库,以及如何在搜索结果中实现分页和关键字高亮。...

    php写的关键字高亮显示

    "php写的关键字高亮显示"是一个专门针对PHP代码设计的功能,旨在通过特定的样式或者颜色来突出显示代码中的关键字,让代码更加醒目,便于阅读和调试。 关键词高亮通常包括对PHP的保留关键字、函数名、变量名、字符...

    jS 正则表达式实现关键字高亮显示

    在本文中,我们将深入探讨如何利用正则表达式实现关键字的高亮显示,尤其适用于文本搜索和代码高亮场景。下面将详细阐述这一技术的实现原理和步骤。 1. **正则表达式基础** 在JS中,正则表达式是通过构造函数`...

    行号显示关键字高亮的简单实现

    在开发源代码编辑器或者文本处理工具时,行号显示和关键字高亮是两个非常重要的功能。行号显示有助于用户快速定位代码位置,而关键字高亮则可以提高代码的可读性,使得开发者能更快地识别出代码中的关键部分。下面...

    Edit自动换行,关键字高亮

    "Edit自动换行,关键字高亮"这个主题涉及到两个关键功能:自动换行和关键字高亮,这两个特性极大地提升了代码阅读和编辑的效率。 首先,我们来详细讨论一下“自动换行”功能。在编程或文本处理时,有时候我们需要...

    高亮显示关键字

    高亮显示 关键字 function HeightLight(Keyword) { //文本选择器 var TextRange; //是否找到 var Found=false; //找到的次数 var Count = 0; TextRange = document.body.createTextRange(); Found = ...

    excel VBA高亮显示关键字.xla

    wps VBA excel高亮显示关键字 excel在搜索关键字时会把关键字高亮突出显示出来 遇到关键字就自动变色高亮的 , 是可以自己定义要变色的关键字

    C#关键字高亮显示+关键字智能提示,内置SQL语法的关键字提醒和高亮显示

    "C#关键字高亮显示+关键字智能提示,内置SQL语法的关键字提醒和高亮显示"这个主题聚焦于C#编程语言的开发环境优化,特别是如何通过高亮显示和智能提示来提升开发体验。 首先,关键字高亮显示是现代代码编辑器的一个...

    C#实现关键字高亮提示框

    用VS 2017做的一个c#关键字高亮和提示框功能,颜色,关键字,特殊分隔符都可以自定义,为了不上淘宝买下载资源,把自己的小项目贡献给大家,希望大家能原谅我收取部分积分,一键运行即可,源码简洁明了,有非常明确...

    百度全文内容关健搜索,关键字高亮显示出来

    在IT行业中,全文内容的关键字搜索与高亮显示是一项常用且重要的功能,尤其在搜索引擎、文档管理系统以及在线阅读平台等领域。这个功能可以帮助用户快速定位到他们关心的信息,提高信息检索的效率。以下将详细讲解这...

Global site tag (gtag.js) - Google Analytics