javascript - 正则表达式排除某些标签

标签 javascript regex

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

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

到目前为止我的代码:

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

问题是现在它或多或少工作得很好,但也没有删除例如 b 因为它与 br 中的 b 匹配白名单。

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

最佳答案

使用这个正则表达式:-

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

LIVE DEMO

欲了解更多信息,请参阅my earlier answer ,满足您的要求。

关于javascript - 正则表达式排除某些标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10267871/

相关文章:

javascript - 动态更改母版页中的菜单类别

javascript - 如何强制 Service Worker 在页面加载时更新应用程序

javascript - 如何浏览 div 中的每个链接并根据条件更新文本

c++ - 将 C++11 regexp 与 gcc 4.8.2 一起使用时出现奇怪的结果(但适用于 Boost regexp)

regex - 使用 sapply 和 grepl 将向量与多个字符串匹配时添加标记

javascript - 即使我对值进行硬编码,includes()也会返回 false

javascript - 控制台不会记录 div 数组

php - 如何查找和替换 MySQL 文本字段中的整个单词?

Java正则表达式匹配UTF-8字符串(无副本)

python - 正则表达式多重表达式