C# 检索不区分大小写并高亮显示实例详解
发布时间:2020-12-15 06:11:25 所属栏目:百科 来源:网络整理
导读:C# 检索不区分大小写并高亮显示实例详解 今日,碰到一个问题:如何在网页中高亮显示不区分大小写的关键字 例如:文本abcaBcabCaBCabcaBCa,关键字bc,在不区分大小写的情况,一共有6个匹配项。 则在网页中显示的是abcaBcabCaBCabcaBCa。 很多人,想到是repla
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; } 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读