HTMLHelper

public class HTMLHelper { /**/ /// <summary> /// 去除HTML标记 /// </summary> /// <param name="NoHTML">包括HTML的源码 </param> /// <param name="isClearSpechars">去除特殊字符 </param> /// <returns>已经去除后的文字</returns> public static string NoHTML(string htmlstring, bool isClearSpechars = true) { if (String.IsNullOrEmpty(htmlstring)) { return string.Empty; } //删除脚本 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 = Regex.Replace(htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase); //删除与数据库相关的词 htmlstring = Regex.Replace(htmlstring, "select", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "insert", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "delete from", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "count''", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "drop table", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "truncate", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "asc", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "mid", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "char", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "exec master", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "net localgroup administrators", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "and", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "net user", "", RegexOptions.IgnoreCase); //htmlstring = Regex.Replace(htmlstring, "or", "", RegexOptions.IgnoreCase); //htmlstring = Regex.Replace(htmlstring, "net", "", RegexOptions.IgnoreCase); //htmlstring = Regex.Replace(htmlstring, "*", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "-", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "delete", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "drop", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "script", "", RegexOptions.IgnoreCase); if (isClearSpechars) { //特殊的字符 htmlstring = htmlstring.Replace("<", ""); htmlstring = htmlstring.Replace(">", ""); htmlstring = htmlstring.Replace("*", ""); htmlstring = htmlstring.Replace("-", ""); htmlstring = htmlstring.Replace("?", ""); htmlstring = htmlstring.Replace("'", "''"); htmlstring = htmlstring.Replace(",", ""); htmlstring = htmlstring.Replace("/", ""); htmlstring = htmlstring.Replace(";", ""); htmlstring = htmlstring.Replace("*/", ""); htmlstring = htmlstring.Replace("\r\n", ""); } htmlstring = System.Web.HttpUtility.HtmlEncode(htmlstring).Trim(); return htmlstring; } /**/ /// <summary> /// 去除HTML标记 /// </summary> /// <param name="NoHTML">包括HTML的源码 </param> /// <param name="isClearSpechars">去除特殊字符 </param> /// <returns>已经去除后的文字</returns> public static string NoHTMLByTextarea(string htmlstring, bool isClearSpechars = true) { if (String.IsNullOrEmpty(htmlstring)) { return string.Empty; } //删除脚本 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 = Regex.Replace(htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase); //删除与数据库相关的词 htmlstring = Regex.Replace(htmlstring, "delete from", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "count''", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "drop table", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "truncate", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "asc", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "mid", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "char", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "exec master", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "net localgroup administrators", "", RegexOptions.IgnoreCase); //htmlstring = Regex.Replace(htmlstring, "and", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "net user", "", RegexOptions.IgnoreCase); //htmlstring = Regex.Replace(htmlstring, "or", "", RegexOptions.IgnoreCase); //htmlstring = Regex.Replace(htmlstring, "net", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "delete", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "drop", "", RegexOptions.IgnoreCase); htmlstring = Regex.Replace(htmlstring, "script", "", RegexOptions.IgnoreCase); if (isClearSpechars) { //特殊的字符 htmlstring = htmlstring.Replace("<", ""); htmlstring = htmlstring.Replace(">", ""); htmlstring = htmlstring.Replace("*", ""); htmlstring = htmlstring.Replace("-", ""); htmlstring = htmlstring.Replace("?", ""); htmlstring = htmlstring.Replace("'", "''"); htmlstring = htmlstring.Replace(",", ""); htmlstring = htmlstring.Replace("/", ""); htmlstring = htmlstring.Replace(";", ""); htmlstring = htmlstring.Replace("*/", ""); } htmlstring = System.Web.HttpUtility.HtmlEncode(htmlstring).Trim(); if (htmlstring.Contains("\r\n")) { htmlstring = htmlstring.Replace("\r\n", "<br/>"); } if (htmlstring.Contains("\n")) { htmlstring = htmlstring.Replace("\n", "<br/>"); } return htmlstring; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统