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

使用正则表达式修复HTML标签内的多余空格问题

修复带多余空格的无效HTML标签

可以通过几个精准的正则表达式分步骤处理,既能清理标签内的多余空格,又不会破坏文本内容里带空格的<或>符号:

处理步骤及正则说明

  • 清理开始标签<与标签名之间的空格
    匹配<后紧跟空格+标签名的情况,移除空格:

    html = html.replace(/<\s+([a-z][a-z0-9]*)/gi, '<$1');
    

    例如将< div转换为<div,< b转换为<b。

  • 清理结束标签</与标签名之间的空格
    匹配</后紧跟空格+标签名的情况,移除空格:

    html = html.replace(/<\/\s+([a-z][a-z0-9]*)/gi, '</$1');
    

    例如将</ b转换为</b,< / div转换为</div。

  • 清理标签结尾>前的多余空格
    匹配非空白字符后紧跟空格+>的场景(避免误匹配文本里的1 > 0这类内容),移除空格:

    html = html.replace(/(\S)\s+>/g, '$1>');
    

    例如将class='test' >转换为class='test'>,< / div >末尾的 >转换为>。

完整示例

以你提供的无效HTML为例:

&lt; div class='test' &gt;1 &gt; 0 is &lt; b &gt;true&lt;/ b&gt; and apples &gt;&gt;&gt; bananas&lt; / div &gt;

运行以下代码:

let invalidHtml = "&lt; div class='test' &gt;1 &gt; 0 is &lt; b &gt;true&lt;/ b&gt; and apples &gt;&gt;&gt; bananas&lt; / div &gt;";

// 步骤1:清理开始标签<与标签名间的空格
invalidHtml = invalidHtml.replace(/<\s+([a-z][a-z0-9]*)/gi, '<$1');
// 步骤2:清理结束标签</与标签名间的空格
invalidHtml = invalidHtml.replace(/<\/\s+([a-z][a-z0-9]*)/gi, '</$1');
// 步骤3:清理标签结尾>前的空格
invalidHtml = invalidHtml.replace(/(\S)\s+>/g, '$1>');

console.log(invalidHtml);

输出结果:

&lt;div class='test'&gt;1 &gt; 0 is &lt;b&gt;true&lt;/b&gt; and apples &gt;&gt;&gt; bananas&lt;/div&gt;

该结果完全符合有效格式要求,同时保留了文本内容里带空格的符号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:10:49