主頁(yè) > 知識(shí)庫(kù) > ASP.NET過(guò)濾HTML標(biāo)簽只保留換行與空格的方法

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

熱門標(biāo)簽:t3出行地圖標(biāo)注怎么做 寧夏機(jī)器人電銷 河南語(yǔ)音外呼系統(tǒng)公司 河北網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 關(guān)于宗地圖標(biāo)注技術(shù)規(guī)范 400電話辦理最優(yōu)質(zhì) 威海電銷 外呼電銷機(jī)器人軟件 400免費(fèi)電話怎么辦理

本文實(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ì)有所幫助。

您可能感興趣的文章:
  • asp.NET 臟字過(guò)濾算法 修改版
  • asp.NET 臟字過(guò)濾算法
  • ASP.NET過(guò)濾器的應(yīng)用方法介紹
  • asp.net 過(guò)濾圖片標(biāo)簽的正則
  • ASP.NET環(huán)境下為網(wǎng)站增加IP過(guò)濾功能
  • ASP.NET過(guò)濾HTML字符串方法總結(jié)
  • ASP.NET中的URL過(guò)濾實(shí)現(xiàn)代碼
  • asp.net 臟字典過(guò)濾問(wèn)題 用正則表達(dá)式來(lái)過(guò)濾臟數(shù)據(jù)
  • Asp.net之?dāng)?shù)據(jù)過(guò)濾淺析
  • ASP.NET過(guò)濾類SqlFilter,防止SQL注入
  • 高效.NET臟字過(guò)濾算法與應(yīng)用實(shí)例

標(biāo)簽:淮北 廣元 樂(lè)山 咸寧 固原 吉林 池州 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET過(guò)濾HTML標(biāo)簽只保留換行與空格的方法》,本文關(guān)鍵詞  ASP.NET,過(guò)濾,HTML,標(biāo)簽,只,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET過(guò)濾HTML標(biāo)簽只保留換行與空格的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于ASP.NET過(guò)濾HTML標(biāo)簽只保留換行與空格的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章