隐藏

去除文字里的html标签的C#方法

发布:2014/8/2 0:40:32作者:管理员 来源:本站 浏览次数:1508

  1. /// <summary>  
  2.         /// 清除文本中Html的标签  
  3.         /// </summary>  
  4.         /// <param name="Content"></param>  
  5.         /// <returns></returns>  
  6.         protected string ClearHtml(string Content)  
  7.         {  
  8.             Content = Zxj_ReplaceHtml("&#[^>]*;""", Content);  
  9.             Content = Zxj_ReplaceHtml("</?marquee[^>]*>""", Content);  
  10.             Content = Zxj_ReplaceHtml("</?object[^>]*>""", Content);  
  11.             Content = Zxj_ReplaceHtml("</?param[^>]*>""", Content);  
  12.             Content = Zxj_ReplaceHtml("</?embed[^>]*>""", Content);  
  13.             Content = Zxj_ReplaceHtml("</?table[^>]*>""", Content);  
  14.             Content = Zxj_ReplaceHtml(" """, Content);  
  15.             Content = Zxj_ReplaceHtml("</?tr[^>]*>""", Content);  
  16.             Content = Zxj_ReplaceHtml("</?th[^>]*>""", Content);  
  17.             Content = Zxj_ReplaceHtml("</?p[^>]*>""", Content);  
  18.             Content = Zxj_ReplaceHtml("</?a[^>]*>""", Content);  
  19.             Content = Zxj_ReplaceHtml("</?img[^>]*>""", Content);  
  20.             Content = Zxj_ReplaceHtml("</?tbody[^>]*>""", Content);  
  21.             Content = Zxj_ReplaceHtml("</?li[^>]*>""", Content);  
  22.             Content = Zxj_ReplaceHtml("</?span[^>]*>""", Content);  
  23.             Content = Zxj_ReplaceHtml("</?div[^>]*>""", Content);  
  24.             Content = Zxj_ReplaceHtml("</?th[^>]*>""", Content);  
  25.             Content = Zxj_ReplaceHtml("</?td[^>]*>""", Content);  
  26.             Content = Zxj_ReplaceHtml("</?script[^>]*>""", Content);  
  27.             Content = Zxj_ReplaceHtml("(javascript|jscript|vbscript|vbs):""", Content);  
  28.             Content = Zxj_ReplaceHtml("on(mouse|exit|error|click|key)""", Content);  
  29.             Content = Zxj_ReplaceHtml("<\\?xml[^>]*>""", Content);  
  30.             Content = Zxj_ReplaceHtml("<\\/?[a-z]+:[^>]*>""", Content);  
  31.             Content = Zxj_ReplaceHtml("</?font[^>]*>""", Content);  
  32.             Content = Zxj_ReplaceHtml("</?b[^>]*>""", Content);  
  33.             Content = Zxj_ReplaceHtml("</?u[^>]*>""", Content);  
  34.             Content = Zxj_ReplaceHtml("</?i[^>]*>""", Content);  
  35.             Content = Zxj_ReplaceHtml("</?strong[^>]*>""", Content);  
  36.             string clearHtml = Content;  
  37.             return clearHtml;  
  38.         }  
  39.    
  40.         /// <summary>  
  41.         /// 清除文本中的Html标签  
  42.         /// </summary>  
  43.         /// <param name="patrn">要替换的标签正则表达式</param>  
  44.         /// <param name="strRep">替换为的内容</param>  
  45.         /// <param name="content">要替换的内容</param>  
  46.         /// <returns></returns>  
  47.         private string Zxj_ReplaceHtml(string patrn, string strRep, string content)  
  48.         {  
  49.             if (string.IsNullOrEmpty(content))  
  50.             {  
  51.                 content = "";  
  52.             }  
  53.             Regex rgEx = new Regex(patrn, RegexOptions.IgnoreCase);  
  54.             string strTxt = rgEx.Replace(content, strRep);  
  55.             return strTxt;  
  56.         }  


为何要把文字内的html标签去掉呢,是因为在绑定的时候,浏览器会把标签的释义,释义之后会有可能将我们原有的布局打乱。所以,当只展示文字的时 候,我们就要这样去做了。遇到这个问题是,在我绑定产品详情的时候遇到的,超过一定字数就截取字符,可以这样又会造成html标签缺省或配合混乱。