1

我已经修改了一个白名单 javascript 正则表达式,它去除了不需要的标签。

我正在尝试允许此代码:

<span style="color: #000000"></span>

但我无法在正则表达式中做到这一点。

贝娄是迄今为止所拥有的:

(/<(?!(br|\/br|p|\/p|b|\/b|u|\/u|ol|\/ol|ul|\/ul|li|\/li))([^>])+>/gi

谢谢

4

3 回答 3

3

也适用于我-除非您尝试做更多事情-例如,标签之间是否有任何内容,或者您​​想在同一运行中匹配开始和结束标签-然后在您的问题中发布示例.

顺便说一句:正则表达式可以通过以下方式稍微简化:

<(?!((?:\/\s*)?(?:br|p|b|u|[o|i]l|li)))([^>])+>
  • (?:\/\s*)?- 一个可选的斜线
  • (?:br|p|b|u|[o|i]l|li)- 后跟这些标签中的任何一个

更新:

这是我的最后一次尝试:

  • 如果你想匹配所有其他标签使用这个

    <(?!(?:\/\s*)?(?:br|p|b|[o|u]l|li|span)(?:\s*style='color: #[A-Fa-f0-9]+'))([^>])*>

  • 如果您想将标签与颜色匹配,请使用此

    <((?:\/\s*)?(?:br|p|b|[o|u]l|li|span)(?:\s*style='color: #[A-Fa-f0-9]+'))([^>])*>

于 2012-04-28T12:37:04.247 回答
2

这对我有用(开头没有括号):

/<(?!(br|\/br|p|\/p|b|\/b|u|\/u|ol|\/ol|ul|\/ul|li|\/li))([^>])+>/gi
于 2012-04-28T04:42:17.723 回答
1

我已经开发了带有源代码的工具。它将剥离所有标签,并带有用户证明的例外列表:试试这个HTML Tag Stripper

于 2013-05-28T12:24:12.510 回答