【问题标题】:regex exclude certain tags正则表达式排除某些标签
【发布时间】:2012-04-22 12:19:53
【问题描述】:

只需要快速帮助来解决这个问题。

我想从一个字符串中去除所有 html 标签,除了白名单(变量)中的标签。

到目前为止我的代码:

whitelist = 'p|br|ul|li|strike|em|strong|a', 
reqExp = new RegExp('<\/?[^>|' + whitelist + ']+\/?>');

现在的问题是它或多或少可以正常工作,但也不能删除例如b,因为它与白名单中的br 中的b 匹配。

我尝试了不同的方法,但没有找到正确的解决方案。 我如何告诉正则表达式执行/.WITHOUT(smth)/ 之类的操作(因此:匹配所有预期的内容)。

【问题讨论】:

  • 您最好使用回调进行替换并检查匹配的标签。
  • @alex: 是的可能是一个解决方案,但接受答案的正则表达式很好
  • @ahm:是的,我看到了这篇文章,但在我的情况下,我的答案很好 - 不是一个巨大的危险/非常重要的应用程序。还是谢谢

标签: javascript regex


【解决方案1】:

使用这个正则表达式:-

<(?!/?(p|br|ul|li|strike|em|strong|a)(>|\s))[^<]+?>

LIVE DEMO

如需了解更多信息,请参考 my earlier answer,它可以满足您的要求。

【讨论】:

  • 谢谢。这对我有用。也是不错的正则表达式在线测试引擎。
猜你喜欢
  • 2018-10-03
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2015-01-28
  • 1970-01-01
相关资源
最近更新 更多