一般情况下,需要对搜索结果进行高亮显示,主要用到正则匹配,
好像Lucene搜索引擎保护了高亮显示的处理类,但是在服务器端的,就在返回的结果里面就处理了,
js 代码
-
-
-
-
-
-
-
-
- function MarkHighLight(obj,hlWords,cssClass){
-
- hlWords=AnalyzeHighLightWords(hlWords);
-
- if(obj==null || hlWords.length==0)
- return;
- if(cssClass==null)
- cssClass="highlight";
- MarkHighLightCore(obj,hlWords);
-
-
- function MarkHighLightCore(obj,keyWords){
- var re=new RegExp(keyWords, "i");
-
- for(var i=0; i<obj.childNodes.length; i++){
-
- var childObj=obj.childNodes[i];
- if(childObj.nodeType==3){
- if(childObj.data.search(re)==-1)continue;
- var reResult=new RegExp("("+keyWords+")", "gi");
- var objResult=document.createElement("span");
- objResult.innerHTML=childObj.data.replace(reResult,"<span class='"+cssClass+"'>$1</span>");
- if(childObj.data==objResult.childNodes[0].innerHTML) continue;
- obj.replaceChild(objResult,childObj);
- }else if(childObj.nodeType==1){
- MarkHighLightCore(childObj,keyWords);
- }
- }
- }
-
-
- function AnalyzeHighLightWords(hlWords)
- {
- if(hlWords==null) return "";
- hlWords=hlWords.replace(/\s+/g,"|").replace(/\|+/g,"|");
- hlWords=hlWords.replace(/(^\|*)|(\|*$)/g, "");
-
- if(hlWords.length==0) return "";
- var wordsArr=hlWords.split("|");
-
- if(wordsArr.length>1){
- var resultArr=BubbleSort(wordsArr);
- var result="";
- for(var i=0;i<resultArr.length;i++){
- result=result+"|"+resultArr[i];
- }
- return result.replace(/(^\|*)|(\|*$)/g, "");
-
- }else{
- return hlWords;
- }
- }
-
-
- function BubbleSort(arr){
- var temp, exchange;
- for(var i=0;i<arr.length;i++){
- exchange=false;
- for(var j=arr.length-2;j>=i;j--){
- if((arr[j+1].length)>(arr[j]).length){
- temp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp;
- exchange=true;
- }
- }
- if(!exchange)break;
- }
- return arr;
- }
-
- }
-
分享到:
相关推荐
在IT领域,搜索关键字高亮显示是一项常见的功能,它能够帮助用户快速定位并理解搜索结果中的重要信息。这种技术广泛应用于搜索引擎、文本编辑器、数据分析工具等软件中,提升用户体验,使得查找目标内容更为直观。 ...
在实际应用中,当用户进行搜索操作时,能够高亮显示搜索关键字可以显著提升用户体验,因为它帮助用户快速定位到他们关心的信息。在这个主题中,我们将深入探讨如何实现ListView中的搜索关键字高亮显示功能。 首先,...
本文将详细介绍如何在SecureCRT中设置关键字高亮显示,帮助用户更高效地工作。 #### 工具/原料 - SecureCRT Version 6.5.0 (build380) - Official Release - December 10, 2009 - 操作系统:Windows 7 旗舰版 64位 ...
Android搜索关键字高亮显示,意思就是当你输入某个关键字进行搜索时,在搜索到的结果中,您搜索的关键字会以另外的颜色突显出来,给用户更好的视觉体验。 技术文章地址:...
VB 自绘关键字高亮显示代码编辑器是一种专为VB编程设计的工具,它能够提供良好的代码编写体验,增强程序员的工作效率。这个编辑器的特色在于其自绘功能,这意味着它可以自行控制界面的绘制,包括对关键字进行高亮...
"关键字高亮显示"是一种常见的文本处理技术,它可以帮助用户快速定位和识别关键信息,提高阅读效率。这种技术通常应用于代码编辑器、搜索引擎结果展示、文档阅读器等多个场景。 首先,我们要理解“高亮显示”的概念...
本文将详细讲解如何在C#的WinForms环境中,利用RichTextBox控件实现关键字高亮显示。 首先,我们需要了解`RichTextBox`的基本操作。`RichTextBox`控件提供了丰富的文本格式化功能,包括字体、颜色、样式等设置。在...
很好用的JS关键字高亮显示代码 代码简洁 实用
在描述中提到的关键字高亮显示,这是一个在文本编辑器或代码查看器中常见的功能,它有助于提高代码可读性和用户体验。关键字高亮通常涉及到以下几个核心概念: 1. **颜色主题**:在Java Swing中,你可以通过自定义...
标题 "Lunene分页关键字高亮显示" 暗示了我们正在讨论一个与搜索引擎或数据检索相关的项目,其中涉及到了Lunene(可能是Lucene的误拼),一种广泛使用的全文搜索引擎库,以及如何在搜索结果中实现分页和关键字高亮。...
"php写的关键字高亮显示"是一个专门针对PHP代码设计的功能,旨在通过特定的样式或者颜色来突出显示代码中的关键字,让代码更加醒目,便于阅读和调试。 关键词高亮通常包括对PHP的保留关键字、函数名、变量名、字符...
在本文中,我们将深入探讨如何利用正则表达式实现关键字的高亮显示,尤其适用于文本搜索和代码高亮场景。下面将详细阐述这一技术的实现原理和步骤。 1. **正则表达式基础** 在JS中,正则表达式是通过构造函数`...
在开发源代码编辑器或者文本处理工具时,行号显示和关键字高亮是两个非常重要的功能。行号显示有助于用户快速定位代码位置,而关键字高亮则可以提高代码的可读性,使得开发者能更快地识别出代码中的关键部分。下面...
"Edit自动换行,关键字高亮"这个主题涉及到两个关键功能:自动换行和关键字高亮,这两个特性极大地提升了代码阅读和编辑的效率。 首先,我们来详细讨论一下“自动换行”功能。在编程或文本处理时,有时候我们需要...
高亮显示 关键字 function HeightLight(Keyword) { //文本选择器 var TextRange; //是否找到 var Found=false; //找到的次数 var Count = 0; TextRange = document.body.createTextRange(); Found = ...
wps VBA excel高亮显示关键字 excel在搜索关键字时会把关键字高亮突出显示出来 遇到关键字就自动变色高亮的 , 是可以自己定义要变色的关键字
"C#关键字高亮显示+关键字智能提示,内置SQL语法的关键字提醒和高亮显示"这个主题聚焦于C#编程语言的开发环境优化,特别是如何通过高亮显示和智能提示来提升开发体验。 首先,关键字高亮显示是现代代码编辑器的一个...
用VS 2017做的一个c#关键字高亮和提示框功能,颜色,关键字,特殊分隔符都可以自定义,为了不上淘宝买下载资源,把自己的小项目贡献给大家,希望大家能原谅我收取部分积分,一键运行即可,源码简洁明了,有非常明确...
在IT行业中,全文内容的关键字搜索与高亮显示是一项常用且重要的功能,尤其在搜索引擎、文档管理系统以及在线阅读平台等领域。这个功能可以帮助用户快速定位到他们关心的信息,提高信息检索的效率。以下将详细讲解这...