這樣的連字符我已經構建了一個litte asp.net表單來搜索某些內容並顯示結果。我想突出顯示搜索結果中的搜索字符串。例如:不區分大小寫的字符串替換,正確地使用像「ß」<=>「ss」
Query: "p"
Results: a<b>p</b>ple, banana, <b>p</b>lum
,我有是這樣的代碼:
public static string HighlightSubstring(string text, string substring)
{
var index = text.IndexOf(substring, StringComparison.CurrentCultureIgnoreCase);
if(index == -1) return HttpUtility.HtmlEncode(text);
string p0, p1, p2;
text.SplitAt(index, index + substring.Length, out p0, out p1, out p2);
return HttpUtility.HtmlEncode(p0) + "<b>" + HttpUtility.HtmlEncode(p1) + "</b>" + HttpUtility.HtmlEncode(p2);
}
我大部分的作品,但與HighlightSubstring("ß", "ss")
嘗試例如。這崩潰,因爲在德國「ß」和「ss」被認爲是相等的由IndexOf
方法,,但他們有不同的長度!
現在,如果有方法可以找出「文本」中匹配的時間長短,那就沒問題了。請記住,這個長度可以是!= substring.Length
。
那麼如何找出IndexOf
在連字和外來語言字符(本例中爲連字)存在的情況下匹配的長度?
只是想知道:爲什麼只突出「蘋果」中的第一個「p」? – FrustratedWithFormsDesigner 2010-05-14 15:45:46
你說得對,我會修改這個以突出所有匹配;-) thx。 – usr 2010-05-14 17:01:38
'StringComparison.OrdinalIgnoreCase'做你想要的嗎? – Gabe 2010-05-14 21:33:02