首頁  >  文章  >  後端開發  >  C#實作檢索不區分大小寫且高亮顯示的範例程式碼分享

C#實作檢索不區分大小寫且高亮顯示的範例程式碼分享

黄舟
黄舟原創
2017-03-28 11:45:491716瀏覽

這篇文章主要介紹了C# 檢索不區分大小寫並高亮顯示實例詳解的相關資料,需要的朋友可以參考下

C# 檢索不區分大小寫並高亮顯示實例詳解

  今日,碰到一個問題:如何在網頁中高亮顯示不區分大小寫的關鍵字

  例如:文字abcaBcabCaBCabcaBCa,關鍵字bc,在不區分大小寫的情況,總共有6個匹配項。

  則在網頁中顯示的是abcaBcabCaBCabcaBCa。

  很多人,想到是replace函數。但是在c# 中replace函數無法解決字母大小寫問題。

  例如示例上看,bc,Bc,bC,BC都被搜索到了,卻不能統一替換為一個文本

       以上文字轉自大牛“萬倉一黍“的文章- -”高亮顯示不區分大小寫的關鍵字-ASP“。

       但是他的文章寫得是ASP版本,今天我寫得是C#版本;下面說說解決方法。

   解決方法:運用IndexOf

            IndexOf(String, Int32,物件中的第一個匹配項的索引。

參數

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=&#39;highlight&#39;>";
      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;
    }

以上是C#實作檢索不區分大小寫且高亮顯示的範例程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn