using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
namespace siteadmin
{
public class search
{
public enum enStyle : int
{
red = 1,
black = 2,
yellow = 3,
white = 4,
blue = 5,
green = 6,
other = -1
}
private static string[] colorStr = new string[] { "red", "black", "yellow", "white", "blue", "green" };
public static string otherBKColor;
public static string OtherBKColor
{
set { otherBKColor = value; }
}
public static string otherPenColor;
public static string OtherPenColor
{
set { otherPenColor = value; }
}
/// <summary>
/// 高亮搜索内容高亮显示类
/// </summary>
/// <param name="content">内容</param>
/// <param name="key">搜索键</param>
/// <param name="maxLenght">string最大长度,-1为关闭</param>
/// <param name="colorStyle">样式</param>
/// <param name="endString">结尾字符</param>
/// <returns></returns>
public static string highLightStr(string content, string key, int maxLenght, enStyle BKcolorStyle, enStyle penColorStyle, string endString)
{
if (content.Length <= 0 || key.Length <= 0)
{
return content;
}
string staSpan = null;
if ((int)BKcolorStyle == -1)
{
staSpan = "<span style='background-color:" + otherBKColor + ";color:" + otherPenColor + "'>";
}
else
{
staSpan = "<span style='background-color:" + colorStr[(int)BKcolorStyle - 1] + ";color:" + colorStr[(int)penColorStyle - 1] + "'>";
}
string endSpan = "</span>";
int temp = System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(content, key, System.Globalization.CompareOptions.IgnoreCase);
if (temp >= 0)
{
if (maxLenght != -1)
{
if(content.Length>maxLenght)
{
//1.如果关键字前面有maxLenght/2的字符串
if (temp > maxLenght / 2)
{
//获取截取开头位置索引
int staIndex=temp-(maxLenght/2);
//开头索引足够截取到maxLength个字符串
if(content.Length-staIndex>maxLenght)
{
content=content.Substring(staIndex,maxLenght);
}
//后面的不够截取
else
{
//需要往前移动的位数
int i=maxLenght-(content.Length-staIndex);
//往前移动
staIndex=staIndex-i;
content=content.Substring(staIndex,maxLenght);
}
}
else
{
content=content.Substring(0,maxLenght);
}
}
}
temp = System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(content, key, System.Globalization.CompareOptions.IgnoreCase);
content = content.Insert(temp, staSpan);
content = content.Insert(staSpan.Length + temp + key.Length, endSpan);
}
return content + endString;
}
}
}
分享到:
相关推荐
首先,我们要明白搜索高亮的基本原理。当用户在搜索栏输入关键词后,系统会遍历内容,找到与关键词匹配的部分,并对这些部分进行特殊处理,如改变颜色、加粗或用背景色填充,以便于突出显示。这个过程通常涉及到字符...
在压缩包中的"带搜索的树,结果高亮显示ztree"可能包含了实现这一功能的示例代码、配置文件和样例数据,可以通过学习和研究这些资源来理解和实现类似的搜索高亮功能。 在实际应用中,可能还需要考虑性能优化,例如...
以下是一个简单的jQuery高亮搜索实现: ```javascript function highlightKeyword(text, keyword) { return text.replace(new RegExp(keyword, 'gi'), function(match) { return '<span class="highlight">' + ...
在个人搜索引擎的开发过程中,高亮显示是一种提升用户体验的关键技术,它能帮助用户快速定位到搜索结果中的关键词,使得信息的查找更为直观高效。本文将详细介绍三种常用的高亮显示方法,这些方法基于Lucene框架,...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
在IT领域,文本编辑器是开发人员日常工作中不可或缺的工具,而“类记事本查找功能,支持选取背景高亮显示”则是一个强化版的文本查看和编辑功能。这个功能结合了传统记事本的基本特性,并增加了高效搜索和视觉突出...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
实现JS多关键词高亮方法,可以改造查询条件直接引用该JS方法使用,更加简单简洁实现查询高亮关键词。多关键词当前以空格隔开演示。
5. **高亮显示**:为了高亮显示搜索结果,我们可以使用`Highlighter`类。它接受查询结果和文本,返回高亮后的片段。在Java中,`SimpleHTMLFormatter`和`TokenBasedFragmenter`常用于此目的。 6. **前端展示**:最后...
在实现搜索高亮功能时,通常会使用`$('selector')`来选取包含待高亮文本的元素。例如,如果要高亮所有段落中的关键词,我们可以使用`$('p')`来选取所有段落。 接下来,我们要实现搜索功能。这通常涉及监听搜索框的`...
它能够轻松地对HTML元素内的文本进行匹配和高亮,甚至可以处理textarea内的内容,这在全文检索或搜索结果显示时非常有用。其简单易用的特性使得开发者可以快速集成到项目中,提高用户体验。 ### 插件安装 在使用这...
在JavaScript(JS)编程中,实现关键字搜索高亮显示是一项常见的需求,特别是在开发网页搜索功能或者富文本编辑器时。这个主题涉及到字符串处理、正则表达式和DOM操作等多个方面。下面将详细介绍如何使用JavaScript...
java连接elasticsearch实现全文检索,并且高亮显示结果,实现分页。项目基于elasticsearch5.6.1可根据自己实际情况调整版本。最近项目需要所以学习了一下,项目很简单可以根据你的实际情况更改接口。我本地的搜索是...
在构建一个简单的新闻网站搜索引擎时,SSH(Spring、Struts2和Hibernate)是一个常见的Java Web开发框架组合,而Lucene是Apache开源组织提供的一款强大的全文搜索引擎库。本项目结合了这些技术,实现了分页、排序和...
Lucene是一个高性能、全文本搜索库,提供了一个简单但强大的应用编程接口(API)用于索引和搜索文本。下面我们将深入探讨如何在Android环境中利用Lucene来创建一个高效、功能丰富的全文检索系统,并了解如何高亮显示...
<title>jQuery 文本框搜索高亮 <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> .highlight { background-color: yellow; } 请输入搜索关键词"> 这是一个包含关键词的段落,比如...