国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

ASP.NET過(guò)濾HTML標(biāo)簽只保留換行與空格的方法

2024-07-10 13:28:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了ASP.NET過(guò)濾HTML標(biāo)簽只保留換行與空格的方法,包含網(wǎng)上常見(jiàn)的方法以及對(duì)此方法的改進(jìn),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
 
 

本文實(shí)例講述了ASP.NET過(guò)濾HTML標(biāo)簽只保留換行與空格的方法。分享給大家供大家參考。具體分析如下:

自己從網(wǎng)上找了一個(gè)過(guò)濾HTML標(biāo)簽的方法,我也不知道誰(shuí)的才是原創(chuàng)的,反正很多都一樣。我把那方法復(fù)制下來(lái),代碼如下:

復(fù)制代碼代碼如下:
///   <summary>
///   去除HTML標(biāo)記
///   </summary>
///   <param name="NoHTML">包括HTML的源碼   </param>
///   <returns>已經(jīng)去除后的文字</returns>
public static string NoHTML(string Htmlstring)
{
  //刪除腳本
  Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "",
    RegexOptions.IgnoreCase);
  //刪除HTML
  Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"([/r/n])[/s]+", "",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "/"",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", "   ",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "/xa1",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "/xa2",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "/xa3",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "/xa9",
    RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&#(/d+);", "",
    RegexOptions.IgnoreCase);

 

  Htmlstring.Replace("<", "");
  Htmlstring.Replace(">", "");
  Htmlstring.Replace("/r/n", "");
  Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
  return Htmlstring;
}

 

以上代碼是從網(wǎng)上直接復(fù)制過(guò)來(lái)的,這個(gè)確實(shí)能過(guò)濾掉所有的HTML標(biāo)簽,但是這個(gè)不是我想要的,這個(gè)過(guò)濾得太干凈了,我如果用textarea輸入框的話,我是要保留空格跟換行的。

然后我就自己改了一下這個(gè)方法,textarea的換行是/n,所以我得把這些標(biāo)簽重新匹配替換成<br>,這樣的話從數(shù)據(jù)庫(kù)中讀取到頁(yè)面時(shí),就能正確的換行了,把空格替換成HTML的空格符,大功告成。

復(fù)制代碼代碼如下:
///   <summary>
///   去除HTML標(biāo)記(保留br跟/r/n)
///   </summary>
///   <param   name="NoHTML">包括HTML的源碼   </param>
///   <returns>已經(jīng)去除后的文字</returns>
public static string NewNoHTML(string Htmlstring)
{
    //Htmlstring.Replace("//r//n", "%r%n").Replace("<br>","%br%").Replace("<br/>","%br&%").Replace("//n","%n");
    //刪除腳本
    Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "",
      RegexOptions.IgnoreCase);
    //刪除HTML
    Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "",
      RegexOptions.IgnoreCase);
   
    Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "/"",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", "   ",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "/xa1",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "/xa2",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "/xa3",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "/xa9",
      RegexOptions.IgnoreCase);
    Htmlstring = Regex.Replace(Htmlstring, @"&#(/d+);", "",
      RegexOptions.IgnoreCase);

 

    Htmlstring.Replace("<", "");
    Htmlstring.Replace(">", "");
    //Htmlstring.Replace("/r/n", "");
    Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring);
    Htmlstring = Regex.Replace(Htmlstring, @"((/r/n))", "<br>");
    Htmlstring = Regex.Replace(Htmlstring, @"(/r|/n)", "<br>");
    Htmlstring = Regex.Replace(Htmlstring, @"(/s)", " ");
    return Htmlstring;
}

 

這個(gè)過(guò)濾可以用于讓用戶輸入發(fā)布內(nèi)容時(shí)的過(guò)濾。

希望本文所述對(duì)大家的asp.net程序設(shè)計(jì)有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 祁东县| 中江县| 合阳县| 泉州市| 马关县| 浮梁县| 原平市| 镇雄县| 漾濞| 巴林右旗| 昌乐县| 远安县| 翁牛特旗| 开远市| 夏津县| 遂昌县| 宿迁市| 灵武市| 海南省| 鲜城| 谷城县| 子长县| 天祝| 蚌埠市| 双柏县| 鄂尔多斯市| 大庆市| 兴义市| 囊谦县| 二连浩特市| 京山县| 松阳县| 承德县| 嘉鱼县| 邵东县| 景宁| 广东省| 盐城市| 千阳县| 中牟县| 革吉县|