在阅读一些电子邮件 HTML 正文时,我经常有很多我不再需要的 HTML 标签。
如何在 Javascript 中从字符串中删除所有 HTML 标签,例如:
<anything ...>
或
</anything>
除了这少数情况<x ...>
, </x>
, <x ... />
对于 x
是:
-
a
-
br
-
b
-
img
我想到了类似的事情:
s.replace(/<[^a].*>/g, '');
但我不知道该怎么做。
示例:
<div id="hello">Hello</div><a href="test">Youhou</a>`
应该变成
Hello<a href="test">Youhou</a>
注意:我正在寻找几行代码解决方案,可以在 90% 的情况下工作(电子邮件正文来 self 自己的电子邮件,因此我没有包含任何恶意的内容),而不是需要第三方工具/库的完整解决方案。
最佳答案
尝试更换
<\/?(?!(a|br|b|img)\b)\w+[^>]*>
什么都没有。
<\/?
匹配开始<
,可选地后跟 /
(?!(a|br|b|img)\b)
负向预测确保我们不匹配 a
, br
, b
或img
标签。
\w+[^>]*>
匹配标签的其余部分。
关于javascript - 从 html 正文中删除除 <a>、<br>、<b> 和 <img> 之外的所有 HTML 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46466814/