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

这篇文章主要介绍“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标签只保留换行与空格”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!