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

【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价      
[公益] 地球是我家,绿化靠大家      
2024年 劳动节 002
2024年 端午节 042
2025年 元 旦 247
2025年 春 节 275
 
您现在的位置:首页 >> 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后台关闭当前页面并传值的两种方法

 

下一篇:Asp.net中将Word文件转换成HTML的方法

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