当前位置:首页 > Windows程序 > 正文

asp.net为关键词加上超链接,C#.net 为关键词加上超链接

2021-03-26 Windows程序

/// <summary>  

 /// 为关键词加上超链接  

 /// </summary>  

 /// e.g.:   

 /// string result=GetInnertLink("<a href="http//www.baidu.com" mce_href="http/www.baidu.com">Ningxi</a>Xi过得<span>XI<span>好<a href="http://www.ningxi.com" mce_href="http://www.ningxi.com">快乐</a>!","xi","ningxi","http://www.ningxi.com","_blank",0)  

 /// <param name="htmlcode">要把关键词加上超链接的html源文本</param>  

 /// <param name="keyword">将要加上超链接的关键词</param>  

 /// <param name="title">将要加上的超链接的描文本</param>  

 /// <param name="url">将要加上的超链接的url地址</param>  

 /// <param name="target">将要加上的超链接的打开方式</param>  

 /// <param name="num">为html文本内的前num个关键词加上超链接,0代表全加上超链接</param>  

 /// <returns>返回为关键词加上超链接后的html文本</returns>  

 private static string GetInnertLink(string htmlcode, string keyword, string title, string url, string target, int num)  

 {  

     string htmlcodeResult = htmlcode;  //用于保存最新的html文本

     string htmlcodeLower = htmlcodeResult.ToLower();  //用于保存最新的Hmtl文本的小写,方便不分大小写找出关键词

     string keywordResult = "";  //用于保存关键词的原来面貌,可能是大写,或者有大也有小

     int keyIndex = 0;           //关键词所在位置

     int currentIndex = 0;       //每次搜索关键词的开始位置

     int currentNum = 0;         //保存当前加上了多少个有效超链接

     int LBracketIndex = 0;      //左尖括号<位置

     int RBracketIndex = 0;      //右尖括号>位置

     if (num == 0)  

     {  

         num = htmlcode.Length;  

     }  

     while (currentIndex <= htmlcodeLower.Length && currentNum < num)  

     {  

         if (htmlcodeLower.IndexOf(keyword.ToLower(), currentIndex) > -1)  

         {  

             keyIndex = htmlcodeLower.IndexOf(keyword.ToLower(), currentIndex);  

             LBracketIndex = keyIndex;  

             do  

             {  

                 LBracketIndex = htmlcodeLower.LastIndexOf("<", LBracketIndex - 1, LBracketIndex - currentIndex);  

             }  

             while (LBracketIndex != -1 && htmlcodeLower.Substring(LBracketIndex + 1, 1) == "http://www.mamicode.com/");  

             RBracketIndex = htmlcodeLower.LastIndexOf(">", keyIndex - 1, keyIndex - currentIndex);  

             if (LBracketIndex <= RBracketIndex)  

             {  

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67579.html