ASP.NET怎么过滤HTML标签只保留换行与空格

发布时间:2021-08-25 18:19:40 作者:chen
来源:亿速云 阅读:159

这篇文章主要介绍“ASP.NET怎么过滤HTML标签只保留换行与空格”,在日常操作中,相信很多人在ASP.NET怎么过滤HTML标签只保留换行与空格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET怎么过滤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怎么过滤HTML标签只保留换行与空格”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. php 过滤html标签和转义html标签过滤
  2. PHP中过滤html标签

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

asp.net html

上一篇:静态html文件执行php语句的方法

下一篇:HTML5中的新元素是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》