欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

Asp.Net中过滤所有的Html标签

创建时间:2011年08月21日 22:56  阅读次数:(7275)
分享到:
今天在制作一个显示文章列表的页面,从数据库中读出文章标题及部分内容显示到页面上,可以让读者在列表中就可以了解到该文章的大概。完成后却发现了一个问题,就是在翻页后有些页面显示的不完整了,或者页面布局全变乱了,但有几页却没有。查看有问题页面的源代码,发现原来是因为文章内容中包含了HTML代码,然后我在读取部分内容的时候就简单的在数据库中用了left函数,所以导致读出了未封闭的HTML标签了,显示到页面上后和页面自身的HTML标签一结合,布局就全乱了。

原因找出来了,就寻找解决问题的方法.
解决方法一:将读出来的内容经过HTML编码后再输出到页面上,该方法虽不会引起界面布局错乱的问题,但浏览者会看到一大串HTML标签,毕竟不是很友好。于是该方法淘汰。

解决方法二:过滤掉读出内容所有HTML标签,这样即不会让浏览者看到不应该看到的HTML标签,也不会引发页面布局错乱.

下面贴出过滤掉所有HTML标签的方法,供大家参考:
/// <summary >
/// 过滤所有的Html标签
/// </summary >
/// <param name="Htmlstring" ></param >
/// <returns ></returns >
public static string RemoveHTML(string Htmlstring)
{
Htmlstring = Regex.Replace(Htmlstring, @"<script[^ >]*? >.*?</script >", "",RegexOptions.IgnoreCase);
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;
}

以上方法,希望能给大家带来帮助。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 72+40=? 的结果(结果是:112)
结  果: