主页 > 知识库 > ASP.NET过滤HTML标签只保留换行与空格的方法

ASP.NET过滤HTML标签只保留换行与空格的方法

热门标签:t3出行地图标注怎么做 宁夏机器人电销 河南语音外呼系统公司 河北网络回拨外呼系统 关于宗地图标注技术规范 400电话办理最优质 威海电销 外呼电销机器人软件 400免费电话怎么办理

本文实例讲述了ASP.NET过滤HTML标签只保留换行与空格的方法。分享给大家供大家参考。具体分析如下:

自己从网上找了一个过滤HTML标签的方法,我也不知道谁的才是原创的,反正很多都一样。我把那方法复制下来,代码如下:

复制代码 代码如下:
///   summary>
///   去除HTML标记
///   /summary>
///   param name="NoHTML">包括HTML的源码   /param>
///   returns>已经去除后的文字/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;
}

以上代码是从网上直接复制过来的,这个确实能过滤掉所有的HTML标签,但是这个不是我想要的,这个过滤得太干净了,我如果用textarea输入框的话,我是要保留空格跟换行的。

然后我就自己改了一下这个方法,textarea的换行是\n,所以我得把这些标签重新匹配替换成br>,这样的话从数据库中读取到页面时,就能正确的换行了,把空格替换成HTML的空格符,大功告成。

复制代码 代码如下:
///   summary>
///   去除HTML标记(保留br跟\r\n)
///   /summary>
///   param   name="NoHTML">包括HTML的源码   /param>
///   returns>已经去除后的文字/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;
}

这个过滤可以用于让用户输入发布内容时的过滤。

希望本文所述对大家的asp.net程序设计有所帮助。

您可能感兴趣的文章:
  • asp.NET 脏字过滤算法 修改版
  • asp.NET 脏字过滤算法
  • ASP.NET过滤器的应用方法介绍
  • asp.net 过滤图片标签的正则
  • ASP.NET环境下为网站增加IP过滤功能
  • ASP.NET过滤HTML字符串方法总结
  • ASP.NET中的URL过滤实现代码
  • asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
  • Asp.net之数据过滤浅析
  • ASP.NET过滤类SqlFilter,防止SQL注入
  • 高效.NET脏字过滤算法与应用实例

标签:淮北 广元 乐山 咸宁 固原 吉林 池州 贺州

巨人网络通讯声明:本文标题《ASP.NET过滤HTML标签只保留换行与空格的方法》,本文关键词  ASP.NET,过滤,HTML,标签,只,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《ASP.NET过滤HTML标签只保留换行与空格的方法》相关的同类信息!
  • 本页收集关于ASP.NET过滤HTML标签只保留换行与空格的方法的相关信息资讯供网民参考!
  • 推荐文章