ASP.NET过滤HTML字符串方法总结_实用技巧

本文实例讲述了ASP.NET过滤HTML字符串的方法,供大家参考使用,具体代码如下:

///  <summary>去除HTML标记
///
///  </summary>
///  <param name="Htmlstring">包括HTML的源码</param>
///  <returns>已经去除后的文字</returns>
public static string GetNoHTMLString(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;
} 

/// <summary>获取显示的字符串,可显示HTML标签,但把危险的HTML标签过滤,如iframe,script等。
///
/// </summary>
/// <param name="str">未处理的字符串</param>
/// <returns></returns>
public static string GetSafeHTMLString(string str)
{
  str = Regex.Replace(str, @"<applet[^>]*?>.*?</applet>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<body[^>]*?>.*?</body>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<embed[^>]*?>.*?</embed>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<frame[^>]*?>.*?</frame>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<frameset[^>]*?>.*?</frameset>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<html[^>]*?>.*?</html>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<iframe[^>]*?>.*?</iframe>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<style[^>]*?>.*?</style>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<layer[^>]*?>.*?</layer>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<link[^>]*?>.*?</link>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<ilayer[^>]*?>.*?</ilayer>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<meta[^>]*?>.*?</meta>", "", RegexOptions.IgnoreCase);
  str = Regex.Replace(str, @"<object[^>]*?>.*?</object>", "", RegexOptions.IgnoreCase);
  return str;
} 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索html
, asp.net
, 字符串
, 方法
过滤
,以便于您获取更多的相关知识。

时间: 2025-01-29 20:19:59

ASP.NET过滤HTML字符串方法总结_实用技巧的相关文章

ASP.NET实现伪静态网页方法小结_实用技巧

本文实例总结了ASP.NET实现伪静态网页方法,分享给大家供大家参考之用.具体方法如下: 方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:"http://www.XXXX.com/show-12-34.html",你或许认为在站点服务器根目录"/"下存在名为"show-12-34.html"的文件,其实实际它可能是不存在的,而可能你看到的内容是"/aspx/show.aspx?type=

ASP.NET加密口令的方法实例_实用技巧

每当我们要建立数据库驱动的个人化的web站点时,都必须要保护用户的数据.尽管黑客可以盗取个人的口令,然而更严重的问题是有人能够盗走整个数据库,然后立刻就是所有的口令. 原理 有一个好的做法是不将实际的口令存储在数据库中,而是存储它们加密后的版本.当我们需要对用户进行鉴定时,只是对用户的口令再进行加密,然后将它与系统中的加密口令进行比较即可. 在ASP中,我们不得不借助外部对象来加密字符串.而.NET SDK解决了这个问题,它在System.Web.Security名称空间中的FormsAuthe

ASP.NET过滤器的应用方法介绍_实用技巧

在J2EE Web开发中有过滤器filter,该filter可以对指定的URL访问进行拦截,并执行过滤器的方法,根据实际应用情况,在过滤器中修改请求的代码.判断会话信息,也可以做权限控制,总之这个过滤器是非常有意义的,也可以说是责任链设计模式在J2EE中的一个应用.   那么在ASP.NET中是否也可以定义这样的过滤器结构,并在过滤器中进行相应的逻辑操作呢?答案是肯定,本文将告诉你如果编写一个过滤器,又如何配置到IIS的Web应用之中. 过程一:如何编写过滤器   编写过滤器,其实就是编写一个过

asp.net 页面间传值方法小结_实用技巧

1.表单提交, 复制代码 代码如下: <form action= "target.aspx" method = "post" name = "form1"> <input name = "param1" value = "1111"/> <input name = "param2" value = "2222"/> </for

ASP.NET中图片显示方法实例_实用技巧

本文实例讲述了ASP.NET中图片的显示方法.分享给大家供大家参考.具体如下: genimage.ashx: 复制代码 代码如下: <%@ WebHandler Language="C#" Class="netpix.ImageGenerator" %> genimage.ashx.cs: // Copyright (C) 2003 by Greg Ennis // (mailto:greg@ennis.net) // // The contents o

Asp.net获取当前目录的方法小结_实用技巧

方法一: string sPath = System.IO.Path.GetDirectoryName(Page.Request.PhysicalPath) 方法二: string sPath = System.Web.HttpContext.Current.Request.MapPath("/")                                          方法三: string sPath = Page.Server.MapPath("/"

asp.net 过滤图片标签的正则_实用技巧

复制代码 代码如下: public static string replaceImgUrl(string html) { if (html == null) return ""; System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\<img[^\>]+\>", System.Text.RegularExpressions.R

asp.net生成缩略图示例方法分享_实用技巧

做站的时候经常会遇到要生成缩略图的功能,因为可能不同的情况需要用来不同大小的缩略图. 本文生成的图片都为正方形,只有正方形的缩略图才是保证图片足够清晰. 当我我这里说的正方形是先按比例压缩,然后加一个固定的白底 然后居中显示. 代码: 新建outputimg.ashx 复制代码 代码如下: //调整图片大小private static Size NewSize(int maxWidth, int maxHeight, int Width, int Height)        {        

moq 的常用使用方法(推荐)_实用技巧

Moq,就是Mock you.读音可以读成Mock~you.是Mock框架的一种.用于测试中的Mock测试.Mock是模拟的意思.Mock是模拟对象的一种技术. 测试方法 // 准备 Mock IFoo 接口 var mock = new Mock<IFoo>(); // 配置准备模拟的方法,当调用接口中的 DoSomething 方法,并传递参数 "bing" 的时候,返回 true mock.Setup(foo => foo.DoSomething("p