You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清理HTML字符串中除<font>和<br>外的所有元素?

保留和
标签,转义其他HTML标签的解决方案

核心思路

  • 匹配所有HTML标签并提取标签名称
  • 仅保留<font>、</font>、<br>、<br/>这四类标签
  • 将其余标签的尖括号替换为HTML实体(<→&lt;,>→&gt;),使其无法被浏览器解析为HTML元素

实现代码示例(JavaScript)

function cleanHtmlTags(str) {
    // 正则匹配所有HTML标签,捕获闭合符、标签名、属性内容
    return str.replace(/<(\/?)([a-z]+)([^>]*)>/gi, (fullMatch, slash, tag, attrs) => {
        const allowedTags = ['font', 'br'];
        // 统一转小写判断,兼容大小写形式的标签
        if (allowedTags.includes(tag.toLowerCase())) {
            return fullMatch;
        }
        // 替换尖括号为实体,将标签转为纯文本
        return fullMatch.replace(/</g, '&lt;').replace(/>/g, '&gt;');
    });
}

// 测试用例
const originalContent = '<h2>测试标题</h2><font color="red">红色字体</font><p>段落内容<br/>换行测试</p>';
const cleanedContent = cleanHtmlTags(originalContent);
console.log(cleanedContent);

关键说明

  • 正则的gi标志实现全局匹配且忽略标签大小写,适配<BR>、<FONT>这类大写格式的标签
  • 保留带属性的<font>标签(如<font size="2">),不修改其属性内容
  • 支持自闭合的<br/>标签,同样会被完整保留

测试结果

原内容:

测试标题

红色字体

段落内容
换行测试

处理后内容:

<h2>测试标题</h2>红色字体<p>段落内容
换行测试</p>

内容的提问来源于stack exchange,提问作者ghosty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:55:21