• 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:使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。)
    代码
     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         }

    欢迎大家来吐糟!!!

  • 相关阅读:
    jQuery火箭图标返回顶部代码
    类库引用EF
    Html.DropDownList
    MVC validation
    MVC @functions
    MVC 扩展方法特点
    Class 实现IDisposing方法
    MVC两个必懂核心
    Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别
    sqlserver log
  • 原文地址:https://www.cnblogs.com/qinjian123/p/2818360.html
Copyright © 2020-2023  润新知