最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2014年12月23日 11:00:51   投稿:shichen2014  
這篇文章主要介紹了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)", "&nbsp;");
    return Htmlstring;
}

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

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

相關(guān)文章

最新評(píng)論

内乡县| 蓬安县| 惠州市| 富平县| 芷江| 昭觉县| 上栗县| 香港 | 聂荣县| 佛学| 镇平县| 曲水县| 沅江市| 恭城| 藁城市| 中卫市| 嘉兴市| 仁怀市| 太白县| 中牟县| 五莲县| 含山县| 偃师市| 民权县| 孙吴县| 安多县| 沈丘县| 望江县| 建阳市| 郑州市| 蚌埠市| 嫩江县| 永仁县| 马关县| 昌邑市| 龙海市| 郑州市| 天镇县| 阜康市| 施秉县| 高唐县|