工作室
  我们追求完美的用户体验,提供高品质的网站制作、网站营销、SEO搜索引擎优化,资深的网页设计师+专业的程序员,让您的网站在营销网路上充满动力。 龙翔九度网站工作室服务理念:优质、快捷、诚信。

网站搜索关键词高亮显示方法

Image is everything
Date:2009-11-06  Type:网站知识
网站搜索关键词高亮显示方法,在ASP.NET中一般的方法都是采用替换的办法(Replace),这个方法有一个缺点就是不能区分大小写的问题。用正则表达式的方法来解决这个问题,效率也比较高,归纳如下。
 
//搜索关键词高亮显示函数,当然用之前引用先:using System.Web.UI.HtmlControls; 还有:using System.Text.RegularExpressions;
public static string HighLightKeyWord(string pain,string keyword)

//搜索关键词高亮函数
System.Text.RegularExpressions.MatchCollection m = Regex.Matches(pain, keyword, RegexOptions.IgnoreCase);
//忽略大小写搜索字符串中的关键字
for (int j = 0; j < m.Count; j++)//循环在匹配的子串前后插东东 

 //j×31为插入html标签使pain字符串增加的长度:
pain = pain.Insert((m[j].Index + keyword.Length + j * 31), "</font>");//关键字后插入html标签
pain = pain.Insert((m[j].Index + j * 31), "<font color=#ff0000>");//关键字前插入html标签

 //搜索关键词高亮函数
return pain;
}

以上代码有问题:同一句中有多个关键字时出问题 ,下面这个也不错,很方便的使用。
/// <summary>
/// 替换关键字为红色 
/// </summary>
/// <param name="keycontent">原始内容</param>
/// <param name="k">关键字,支持多关键字</param>
/// <returns>String</returns> 
/// <author>haver Guo</author> 
 public static string Highlightkeywords(string keycontent, string k)

 string resultstr = keycontent; 
 if (k.Trim().IndexOf(‘ ’) > 0) 
 {
string[] myArray = k.Split(‘ ’);
for (int i = 0; i < myArray.Length; i++) 
 { 
   resultstr = resultstr.Replace(myArray[i].ToString(), "<font color=#FF0000>" + myArray[i].ToString() + "</font>");

 return resultstr; 
 }
else 
 { 
 return resultstr.Replace(k, "<font color=#FF0000>" + k + "</font>"); 
 }

 网站搜索关键词高亮显示方法如上,在ASP.NET中经测试可用,发现更好的方法会再次整理出来。
版权所有:©2007 - 2009 龙翔九度网站工作室 加入收藏 QQ在线交流
地址:深圳市龙华街道大浪南路老围新村 电话:15820439962 邮箱:lx9d@163.com QQ:276312661
龙翔九度网站工作室服务理念:优质、快捷、诚信