正则表达式排除某些标签

时间:2012-04-22 12:19:53

标签: javascript regex

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

我想从字符串中删除所有html标签,但白名单(变量)中的标签除外。

到目前为止我的代码:

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

问题是,它现在或多或少都有效,但也没有删除例如b,因为它与白名单中b的{​​{1}}相匹配。

我尝试了不同的方法,但没有找到正确的解决方案。 我如何告诉正则表达式执行br之类的操作(因此:匹配所有人都希望以下所有内容)。

1 个答案:

答案 0 :(得分:4)

使用此正则表达式: -

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

LIVE DEMO

有关详细信息,请参阅 my earlier answer ,这符合您的要求。