html 如何清除字符串中除font & br元素以外的所有元素

4nkexdtk  于 2023-05-12  发布在  其他
关注(0)|答案(1)|浏览(106)

我正在尝试用HTML代码清理字符串。字符串可以包含多个HTML标记。
我想清理字符串中的所有元素,* 除了 * <br><font>标签。通过清理,我想用它们的实体替换它们,这样标签就不会加载。
我试过使用提供的其他代码,但它似乎不起作用,我不知道如何修改它不消毒两个元素。
例如,当我有一个包含HTML元素的字符串时,我想删除除了和之外的所有标记。

raogr8fs

raogr8fs1#

做一些类似的事情,使用正则表达式来查找和替换标签,并使用一个函数作为第二个要替换的参数,在这个函数中,你可以检查你正在处理的标签-然后如果它不是一个brfont标签,用''替换'<'<,用' '替换'>>'(看起来像'<'和'>',但是无害的)。

const sanitize = html => html.replace(/<[^>]*>/g, found =>
  found.indexOf('<br') === 0 || found.indexOf('<font') === 0 ?
    found : found.replace(/</g, '&lt;').replace(/>/g, '&gt;'));

// test
sanitize('<script></script>hello<br><b>test</b><font...>');

顺便说一句,HTML5中不推荐使用font标签...多年来我第一次听到有人提起它...
你可能会问,为什么我使用'g'标志-替换所有的事件< and >?这是为了防止有人鬼鬼祟祟地写了一个< inside another <。

相关问题