C# 檢索不區(qū)分大小寫并高亮顯示實例詳解
C# 檢索不區(qū)分大小寫并高亮顯示實例詳解
今日,碰到一個問題:如何在網(wǎng)頁中高亮顯示不區(qū)分大小寫的關(guān)鍵字
例如:文本abcaBcabCaBCabcaBCa,關(guān)鍵字bc,在不區(qū)分大小寫的情況,一共有6個匹配項。
則在網(wǎng)頁中顯示的是abcaBcabCaBCabcaBCa。
很多人,想到是replace函數(shù)。但是在c# 中replace函數(shù)無法解決字母大小寫問題。
例如示例上看,bc,Bc,bC,BC都被搜索到了,卻不能統(tǒng)一替換為一個文本
以上文字轉(zhuǎn)自大牛“萬倉一黍“的文章--”高亮顯示不區(qū)分大小寫的關(guān)鍵字——ASP“。
但是他的文章寫得是ASP版本,今天我寫得是C#版本;下面說說解決辦法。
解決辦法:運用 IndexOf
IndexOf(String, Int32, StringComparison)
指定的字符串在當前 String 對象中的第一個匹配項的索引。
參數(shù)
value 類型: System. String 要搜尋的字符串。 startIndex 類型: System. Int32 搜索起始位置。 comparisonType 類型: System. StringComparison 指定搜索規(guī)則的枚舉值之一。 (OrdinalIgnoreCase:使用序號排序規(guī)則并忽略被比較字符串的大小寫,對字符串進行比較。)
代碼
/// <summary> /// 高亮查找關(guān)鍵字。 /// </summary> /// <param name="str">文本。</param> /// <param name="keyword">關(guān)鍵字</param> /// <returns>含高亮標識的文本。</returns> /// <remarks> /// 1、字母不區(qū)分大小寫。 /// 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; }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
欄 目:C#教程
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5998.html
您可能感興趣的文章
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10C#實現(xiàn)將窗體固定在顯示器的左上角且不能移動的方法
- 01-10WinForm實現(xiàn)程序一段時間不運行自動關(guān)閉的方法
- 01-10winform創(chuàng)建不規(guī)則窗體的方法
- 01-10C# readnodefile()不能讀取帶有文件名為漢字的osg文件解決方法
- 01-10http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實不準確、不
- 01-10C#實現(xiàn)獲取不同對象中名稱相同屬性的方法
- 01-10C#創(chuàng)建不規(guī)則窗體的4種方式詳解
- 01-10不用IDE寫C#的Hello World的方法
- 01-10c#讀寫App.config,ConfigurationManager.AppSettings 不生效的解決方法


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實例總結(jié)