/// 高亮显示关键字,保持内容的大小写一致
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
protected string GetRedWord(string key)
{
string skey = Request.QueryString["key"];
if (string.IsNullOrEmpty(skey))
{
return key;
}
Regex re = new Regex("(" + @skey + ")", RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture | RegexOptions.Multiline);
bool ishas = re.IsMatch(key);
if (ishas)
{
StringBuilder sb = new StringBuilder();
MatchCollection marr = re.Matches(key);
int maxCount = marr.Count;
string[] arr = re.Split(key);
//match的个数应该是少于等于arr.length,当关键字刚好完全匹配时,两者长度相等,如果不完全匹配,则前者比后者小1,这里应该分这两种情况
if (arr.Length == maxCount)
{
for (int i = 0; i < arr.Length; i++)
{
sb.Append("<span class=\"txt_red\">" + key + "</span>");
}
}
else
{
for (int i = 0; i < arr.Length; i++)
{
if (i == arr.Length - 1)
{
sb.Append(arr[i]);
}
else
{
Match m = marr[i];
sb.Append(arr[i] + "<span class=\"txt_red\">" + key.Substring(m.Index, skey.Length) + "</span>");
}
}
}
return sb.ToString();
}
else
{
return key;
}
}
c#后台设置某些关键字高亮
最新推荐文章于 2023-08-30 09:25:52 发布