asp.net后台过滤html的span标签及去除style属性

这两天弄App的用户协议和隐私政策html文件,因为前端人员没在,就交给了自己。

自己先弄了个后台编辑器,ueditor先保存了文字内容,经过后台,存到库里后,发现自动加了<p style="font-size:20px;">、<span  style="font-size:20px;">标签和样式。

自己现在需求是:1、保留<p>标签,但不要样式;2、删除<span>标签。

代码如下:

public string SHTML(string html)
        {
            //去除所有style样式
            var content = Regex.Replace(html, @"style\s*=(['""\s]?)[^'""]*?\1", "");
            //保留 h1、h4、strong、h5、h6、ul、li、p标签
            string stringPattern = @"</?(?(?=h1|h4|strong|h5|h6|ul|li|strong|p|&nbsp;@)notag|[a-zA-Z0-9]+)(?:\s[a-zA-Z0-9\-]+=?(?:(["",']?).*?\1?)?)*\s*/?>";
            var html1 = Regex.Replace(content, stringPattern, "");
            return html1;
        }

最后过滤成功。

参考文档:

c# 过滤style

C# 过滤html标签,保留要指定标签的做法

.NET MVC前台去掉字符串中的标签


版权声明:本文为u010244957原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。