C# 檢索不區(qū)分大小寫并高亮顯示實例詳解
C# 檢索不區(qū)分大小寫并高亮顯示實例詳解
今日,碰到一個問題:如何在網(wǎng)頁中高亮顯示不區(qū)分大小寫的關鍵字
例如:文本abcaBcabCaBCabcaBCa,關鍵字bc,在不區(qū)分大小寫的情況,一共有6個匹配項。
則在網(wǎng)頁中顯示的是abcaBcabCaBCabcaBCa。
很多人,想到是replace函數(shù)。但是在c# 中replace函數(shù)無法解決字母大小寫問題。
例如示例上看,bc,Bc,bC,BC都被搜索到了,卻不能統(tǒng)一替換為一個文本
以上文字轉(zhuǎn)自大?!叭f倉一黍“的文章--”高亮顯示不區(qū)分大小寫的關鍵字——ASP“。
但是他的文章寫得是ASP版本,今天我寫得是C#版本;下面說說解決辦法。
解決辦法:運用 IndexOf
IndexOf(String, Int32, StringComparison)
指定的字符串在當前 String 對象中的第一個匹配項的索引。
參數(shù)
value 類型: System. String 要搜尋的字符串。 startIndex 類型: System. Int32 搜索起始位置。 comparisonType 類型: System. StringComparison 指定搜索規(guī)則的枚舉值之一。 (OrdinalIgnoreCase:使用序號排序規(guī)則并忽略被比較字符串的大小寫,對字符串進行比較。)
代碼
/// <summary>
/// 高亮查找關鍵字。
/// </summary>
/// <param name="str">文本。</param>
/// <param name="keyword">關鍵字</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#使用filesystemwatcher監(jiān)視文件系統(tǒng)的變化
對于一個文件夾的改變,C#這邊有自己的類來實現(xiàn),我們不需要關心它的內(nèi)部實現(xiàn)機制,不需要關心它底層調(diào)用哪些API,我們只需要關心如何去調(diào)用它,如何讓它幫助我們記錄文件夾的修改情況即可,下面我們就實現(xiàn)它2014-01-01
C#中利用LINQ to XML與反射把任意類型的泛型集合轉(zhuǎn)換成XML格式字符串的方法
本文主要介紹了C#中利用LINQ to XML與反射把任意類型的泛型集合轉(zhuǎn)換成XML格式字符串的方法:利用反射,讀取一個類型的所有屬性,然后再把屬性轉(zhuǎn)換成XML元素的屬性或者子元素。下面注釋比較完整,需要的朋友可以看下2016-12-12
C#實現(xiàn)求一組數(shù)據(jù)眾數(shù)的方法
這篇文章主要介紹了C#實現(xiàn)求一組數(shù)據(jù)眾數(shù)的方法,這里以浮點型數(shù)組為例分析了C#求眾數(shù)的算法原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08
C#實現(xiàn)將窗體固定在顯示器的左上角且不能移動的方法
這篇文章主要介紹了C#實現(xiàn)將窗體固定在顯示器的左上角且不能移動的方法,涉及C#窗體固定操作的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08

