您正在使用 IPV4 [18.97.14.80] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
[公益]保护绿色环境,构建和谐社会      

【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折      
[公益] 地球是我家,绿化靠大家      
2025年 清明节 019
2025年 高 考 083
2026年 元 旦 291
2026年 春 节 338
 
您现在的位置:首页 >> ASP/ASP.net >> 内容
本类新增
本类热门
ASP.NET过滤HTML标签只保留换行与空格的方法
内容摘要: ///summary///去除HTML标记////summary///paramname='NoHTML'包括HTML的源码/param///returns已经去除后的文字/returnspublicstaticstringNoHTML(stringHtmlstring){//删除脚本Htmlstring=Regex.Replace(Htmlstring,@......
///<summary>

///去除HTML标记

///</summary>

///<paramname="NoHTML">包括HTML的源码</param>

///<returns>已经去除后的文字</returns>

publicstaticstringNoHTML(stringHtmlstring)

{

//删除脚本

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();

returnHtmlstring;

}

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

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

代码如下:

///<summary>

///去除HTML标记(保留br跟\r\n)

///</summary>

///<paramname="NoHTML">包括HTML的源码</param>

///<returns>已经去除后的文字</returns>

publicstaticstringNewNoHTML(stringHtmlstring)

{

//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;");

returnHtmlstring;

}

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

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:ASP.NET过滤HTML字符串方法总结

 

下一篇:利用CDONTS发送邮件的ASP函数

发布日期:2024/1/4
手机扫二维码直达本页
发布时间:11:07:38
点  击:15
录  入:星儿
相关文章
Baidu
YiJiaCMS 7.5.6 build250130(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,创宇云安全提供加速防护
运行时间载入中.....
知道创宇云安全