当前位置:  开发笔记 > 编程语言 > 正文

如何过滤除特定白名单之外的所有HTML标记?

如何解决《如何过滤除特定白名单之外的所有HTML标记?》经验,为你挑选了2个好方法。

这适用于.NET.IgnoreCase已设置且未设置MultiLine.

通常我在正则表达式上都很不错,也许我的咖啡因含量很低......

允许用户输入HTML编码的实体(

u, i, b, h3, h4, br, a, img

允许自动关闭和,有或没有额外空间,但不是必需的.

我想要:

    除去上面列出的所有开始和结束HTML标记之外.

    从剩余标签中删除属性,锚点可以有href.

到目前为止,我的搜索模式(替换为空字符串):

<(?!i|b|h3|h4|a|img|/i|/b|/h3|/h4|/a|/img)[^>]+>

似乎剥离了我想要的所有开始和结束标签,但有三个问题:

    必须包含每个允许标记的结束标记版本是丑陋的.

    属性存活下来.这可以在一次更换中发生吗?

    标签开始允许的标签名漏网之鱼.例如,""和"