白名单javascript去除html标签

时间:2012-04-28 03:31:12

标签: javascript html regex strip

我修改了一个白名单javascript正则表达式,用于删除不需要的标记。

我正在尝试允许此代码:

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

但我无法在正则表达式中执行此操作。

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

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

由于

3 个答案:

答案 0 :(得分: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]+'))([^>])*>

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我开发了带有源代码的工具。它会删除所有带有用户证明的例外列表的标签:试试这个HTML Tag Stripper