使用方法
删除多余空格是「贴文本、勾规则、点清理」三步:
- 把要清理的文字粘进「待处理文本」框,演示里预填了一段带多余空格的话。
- 在「选择清理规则」里勾选:去掉首尾空白清掉每行开头结尾的空格;多个空格合并成一个把连续空格压成单个;合并多余空行压缩空行;删除所有空格连间隔也清掉。
- 点「清理空格」或按 Ctrl/Cmd + Enter,结果进下方「处理结果」框;按「复制结果」整段拿走,按「载入示例」还原演示。
删除多余空格能解决什么
它把「从别处复制来的脏文本」变干净,适合三类场景:
- 网页复制粘贴:从网页、PDF 拷来的段落常被塞进大量不间断空格和首尾缩进,清理后才是正常可读的文字,演示里「 你好 世界 」会变成「你好 世界」。
- 代码与配置:贴进配置或脚本的文本若带行尾空格,可能引发格式告警,去掉首尾和连续空格能直接消除这类隐患。
- 聊天与表格:微信、文档里手动敲出的多重空格,清理后对齐更规整,也方便后续按空格做分列。
本页不做的事:不删除换行(除非勾合并空行);不去标点与多余符号;不翻译或改写文字内容。它只动「空白字符」,不改任何可见语义,需要去重或去标点请用对应的文本工具。
原理和变量
① 用了哪个具体函数:核心是 JavaScript 的 String.prototype.replace 配正则表达式,连续空格用 /[ ]{2,}/g,首尾用 /^[ \t]+/gm 与 /[ \t]+$/gm,全角空格 U+3000 单独再替换一次;全删用 /[ \u3000]/g。
② 关键参数为什么这样取:默认只「合并」而不「全删」,是因为中文与英文之间、列与列之间往往需要保留一个空格作间隔;把连续多个压成一个,能去脏又不破坏结构。是否彻底清空由「删除所有空格」复选框决定,属于显式开关而非默认行为。
③ 遵循哪个标准:空白判定按 Unicode 空白定义,涵盖半角空格、制表符、换行以及全角空格(U+3000);处理是纯前端字符串替换,输出仍是普通 Unicode 文本,可原样粘回任意编辑器。
④ 输入怎么变成输出:演示输入「 你好 世界 」先去首尾得「你好 世界」,再合并连续空格得「你好 世界」;「第二行 也 有」同样压成「第二行 也 有」。若勾「删除所有空格」,则进一步变成「你好世界」「第二行也有」。
⑤ 边界与阈值:空输入会提示「待处理文本是空的」并停下;超大文本(如十万字)仍在本地处理,只是耗时略增;全角空格与不间断空格都算空白一并清理;合并空行只压 3 个以上换行,单个空行保留。
⑥ 常见误用的正确解释:把「合并空格」当成「删除所有空格」会连中英文之间的必要间隔也删掉,导致「HelloWorld」粘在一起;误删换行会丢失段落结构。正确做法是先合并、按需再删,且不要对依赖缩进的代码勾「合并多余空行」。
完整示例(数值仅作演示)
规则:勾选「去首尾 + 合并连续空格」,输入预填演示文本。
- 原始: 你好 世界 , 这是 一个 测试 。
- 去首尾后:你好 世界 , 这是 一个 测试 。
- 合并空格后:你好 世界 , 这是 一个 测试 。
- 第二行同理:第二行 也 有 多余 空格
- 若改勾「删除所有空格」:结果变 你好世界,这是一个测试。第二行也有多余空格
这一组与上方工具框默认结果完全一致,可直接对照验证。
输入范围与对照表
删除多余空格的对照表列出常见脏文本经不同规则后的处理结果(↵ 表示换行):
| 原始文本 | 选用处理 | 处理后文本 |
|---|---|---|
| 你好 世界 | 去首尾 + 合并 | 你好 世界 |
| a b c | 合并连续空格 | a b c |
| 第一行↵↵↵第二行 | 合并多余空行 | 第一行↵↵第二行 |
| 全角空格 测试 | 去首尾 | 全角空格 测试 |
| 多个 连续 空格 | 合并连续空格 | 多个 连续 空格 |
| 前面有tab↵↵结尾 | 去首尾 | 前面有tab↵↵结尾 |
| 删所有 空格 吧 | 删除所有空格 | 删所有空格吧 |
| hello world ! | 合并连续空格 | hello world ! |
| 首尾 中间 | 去首尾 + 合并 | 首尾 中间 |
| 段落一↵↵↵↵段落二 | 合并多余空行 | 段落一↵↵段落二 |
| 中文 与 英文 混 排 | 合并连续空格 | 中文 与 英文 混 排 |
| 混合 空格 | 去首尾 + 合并 | 混合 空格 |
| 列表项1↵↵↵↵↵列表项2 | 合并多余空行 | 列表项1↵↵列表项2 |
| tab⇥缩进 结尾 | 去首尾 | tab⇥缩进 结尾 |
| 多 个 全角 | 合并连续空格 | 多 个 全角 |
| leading and trailing | 去首尾 + 合并 | leading and trailing |
对照表能直观看出:勾的选项不同,同一段脏文本的处理结果也不同;合并空行只压超过 2 个的换行,单个空行始终保留。
结果边界和舍入
输出性质:结果是普通文本,长度随输入变化,可直接粘回文档、代码或表格;除空白外,所有可见字符与标点原样保留。
什么时候会提示:输入完全为空时提示「待处理文本是空的」并停止;其余情况都会给出结果,包括「处理后为空」也属于正常(比如全删空格且原文只有空格)。
换行与结构:默认不删除换行,只清行内空白;只有勾「合并多余空行」才压缩 3 个以上换行,单个空行保留以维持段落感。
全角与特殊空白:全角空格(U+3000)、不间断空格等都会被当作空白清理;若你希望保留某种特殊空白,请勿勾对应规则,或在清理后手动补回。
常见问题
合并空格会不会把英文单词连在一起?
不会。本工具只把「连续多个空格」压成「一个空格」,单词之间本就一个空格,不会被删。真正会连在一起的是勾选「删除所有空格」,那会连必要间隔一起清掉。
全角空格能清理吗?
能。全角空格(U+3000)属于 Unicode 空白,本页在去首尾和合并时都把它一并处理,演示里「 全角空格 测试 」去首尾后变成「全角空格 测试」。
为什么我的空行还在?
默认只清行内空白,不删换行。要压缩空行需勾「合并多余空行」,它把 3 个以上的换行压成 1 个,单个空行会保留以维持段落结构。
「删除所有空格」会怎样?
会清空全部空格与全角空格,包括中英文之间、列之间的间隔,例如「你好 世界」变成「你好世界」。适合做紧凑拼接,但会破坏可读性,请按需使用。
处理后的结果能导出吗?
能。上方「复制结果」整段拿走;下方对照表可「导出 CSV」(带 BOM)、「导出 JSON」或「复制对照表」(TSV),方便存档或二次处理。
我的文本会被上传吗?
不会。全部替换在浏览器本地完成,刷新即清空,可在 Network 面板复查,点「清理空格」时没有任何请求发出。
超长文本会卡吗?
一般不会。纯字符串替换很快,十万字也在本地瞬时完成;极个别老旧设备可能在粘贴超大文本时略有延迟,但不影响正确性。
能只清理某一行吗?
本工具按整段处理,没有逐行开关。若只想改某几行,先在其他编辑器里处理好那几行,再整体粘贴进来统一清理即可。