C# 检索不区分大小写并高亮显示实例详解
#技术教程 发布时间: 2026-01-18
C# 检索不区分大小写并高亮显示实例详解

今日,碰到一个问题:如何在网页中高亮显示不区分大小写的关键字
例如:文本abcaBcabCaBCabcaBCa,关键字bc,在不区分大小写的情况,一共有6个匹配项。
则在网页中显示的是abcaBcabCaBCabcaBCa。
很多人,想到是replace函数。但是在c# 中replace函数无法解决字母大小写问题。
例如示例上看,bc,Bc,bC,BC都被搜索到了,却不能统一替换为一个文本
以上文字转自大牛“万仓一黍“的文章--”高亮显示不区分大小写的关键字——ASP“。
但是他的文章写得是ASP版本,今天我写得是C#版本;下面说说解决办法。
解决办法:运用 IndexOf
IndexOf(String, Int32, StringComparison)
指定的字符串在当前 String 对象中的第一个匹配项的索引。
参数
value 类型: System. String 要搜寻的字符串。 startIndex 类型: System. Int32 搜索起始位置。 comparisonType 类型: System. StringComparison 指定搜索规则的枚举值之一。 (OrdinalIgnoreCase:使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。)
代码
/// <summary>
/// 高亮查找关键字。
/// </summary>
/// <param name="str">文本。</param>
/// <param name="keyword">关键字</param>
/// <returns>含高亮标识的文本。</returns>
/// <remarks>
/// 1、字母不区分大小写。
/// 2、CssClass 名称为 highlight。
/// </remarks>
private string HighLightKeyword(string str, string keyword)
{
int index;
var startIndex = 0;
const string highLightBegin = "<span class='highlight'>";
const string highLightEnd = "</span>";
var length = highLightBegin.Length + keyword.Length;
var lengthHighlight = length + highLightEnd.Length;
while ((index = str.IndexOf(keyword, startIndex, StringComparison.OrdinalIgnoreCase)) > -1)
{
str = str.Insert(index, highLightBegin).Insert(index + length, highLightEnd);
startIndex = index + lengthHighlight;
}
return str;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇 : 如何安装mysql server_mysql server安装操作方法
下一篇 : 踏入星星的深度:在不到5分钟内构建一个智能会议室
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!