Node.js中使用sanitize-html移除默认包含的SPAN标签的最优方法
移除sanitize-html中的SPAN标签的更优方案
不用手动编写完整的保留标签列表,有两种更高效的实现方式:
基于默认标签集合过滤SPAN
直接获取sanitize-html的默认允许标签数组,过滤掉span即可,这样能自动同步官方默认标签的更新,无需手动维护完整列表:const sanitizeHtml = require('sanitize-html'); // 过滤默认允许标签中的span const allowedTags = sanitizeHtml.defaults.allowedTags.filter(tag => tag !== 'span'); const rawHtml = '<div><span class="test">需要保留的内容</span>外部文本</div>'; const cleanedHtml = sanitizeHtml(rawHtml, { allowedTags }); // 输出结果:<div>需要保留的内容外部文本</div>使用transformTags直接移除SPAN标签
通过transformTags配置,将span标签转换为null,这样会直接移除标签但保留内部内容,适合需要单独处理特定标签的场景:const sanitizeHtml = require('sanitize-html'); const rawHtml = '<div><span>SPAN内的内容</span>其他内容</div>'; const cleanedHtml = sanitizeHtml(rawHtml, { transformTags: { span: () => null } }); // 输出结果:<div>SPAN内的内容其他内容</div>
这两种方法都比手动编写全量标签列表更简洁且易维护,第一种方法更适合需要继承大部分默认标签规则的场景,第二种则更灵活,可针对单个标签做特殊处理。
内容的提问来源于stack exchange,提问作者Ken
相关产品推荐
相关产品推荐

