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

來源:互聯網
上載者:User
這篇文章主要介紹了C# 檢索不區分大小寫並高亮顯示執行個體詳解的相關資料,需要的朋友可以參考下

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;    }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.