• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#检索不区分大小写,并高亮显示

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

     今日,碰到一个问题:如何在网页中高亮显示不区分大小写的关键字

  例如:文本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:使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。)
代码
 1        /// <summary>
 2        /// 高亮查找关键字。
 3        /// </summary>
 4        /// <param name="str">文本。</param>
 5        /// <param name="keyword">关键字</param>
 6        /// <returns>含高亮标识的文本。</returns>
 7        /// <remarks>
 8        ///    1、字母不区分大小写。 
 9        ///    2、CssClass 名称为 highlight。
10        /// </remarks>
11         private string HighLightKeyword(string str, string keyword)
12         {
13             int index;
14             var startIndex = 0;
15             const string highLightBegin = "<span class='highlight'>";
16             const string highLightEnd = "</span>";
17             var length = highLightBegin.Length + keyword.Length;
18             var lengthHighlight = length + highLightEnd.Length;
19 
20             while ((index = str.IndexOf(keyword, startIndex, StringComparison.OrdinalIgnoreCase)) > -1)
21             {
22                 str = str.Insert(index, highLightBegin).Insert(index + length, highLightEnd);
23                 startIndex = index + lengthHighlight;
24             }
25 
26             return str;
27         }

欢迎大家来吐糟!!!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#log4net的配置发布时间:2022-07-14
下一篇:
C#中Dictionary的用法及用途实例发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap