public string FreedomStripHTML(string strHtml)
        {
            string strOutput = strHtml;
            strOutput = strOutput.Replace("<br>", "\r\t").Replace("<Br>", "\r\t").Replace("<bR>", "\r\t").Replace("<BR>", "\r\t");
            strOutput = strOutput.Replace("<br/>", "\r\t").Replace("<Br/>", "\r\t").Replace("<bR/>", "\r\t").Replace("<BR/>", "\r\t");
            strOutput = Regex.Replace(strOutput, "<[^>]+>", "");
            strOutput = strOutput.Replace("\r\t", "<br/>");//先把<br>替换成\r\t 然后去除所有html标签 之后再换回来
            return strOutput;
        }

 

 

/// <summary>
  /// 去除HTML标记
  /// </summary>
  /// <param name="strHtml">包括HTML的源码 </param>
  /// <returns>已经去除后的文字</returns>
  public static string StripHTML(string strHtml)
  {
   string [] aryReg ={
          @"<script[^>]*?>.*?</script>",

          @"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>",
          @"([\r\n])[\s]+",
          @"&(quot|#34);",
          @"&(amp|#38);",
          @"&(lt|#60);",
          @"&(gt|#62);",
          @"&(nbsp|#160);",
          @"&(iexcl|#161);",
          @"&(cent|#162);",
          @"&(pound|#163);",
          @"&(copy|#169);",
          @"&#(\d+);",
          @"-->",
          @"<!--.*\n"
         
         };

   string [] aryRep = {
           "",
           "",
           "",
           "\"",
           "&",
           "<",
           ">",
           " ",
           "\xa1",//chr(161),
           "\xa2",//chr(162),
           "\xa3",//chr(163),
           "\xa9",//chr(169),
           "",
           "\r\n",
           ""
          };

   string newReg =aryReg[0];
   string strOutput=strHtml;
   for(int i = 0;i<aryReg.Length;i++)
   {
    Regex regex = new Regex(aryReg[i],RegexOptions.IgnoreCase );
    strOutput = regex.Replace(strOutput,aryRep[i]);
   }

   strOutput.Replace("<","");
   strOutput.Replace(">","");
   strOutput.Replace("\r\n","");


   return strOutput;
  }

posted on 2011-01-14 10:24  freedom831215  阅读(195)  评论(0编辑  收藏  举报