文本与字符串

删除多余空格先看清,再清理

默认仅清理行尾;对照空白标记与结果,确认需要的变化后再应用。

删除多余空格

原文

原文空白标记

··标题··内容··␍↵
⇥项目⇥数值·↵
价格⍽10␍↵
····缩进内容··␍↵

处理后预览

··标题··内容␍↵
⇥项目⇥数值↵
价格⍽10␍↵
····缩进内容␍↵

已显示 5 / 5 行、34 个 UTF-16 码元;导出始终包含全部结果。

· 普通空格 ⇥ Tab ⍽ NBSP ↵ LF ␍ CR ␍↵ CRLF。高亮标记仅用于显示。

文本仅在当前浏览器处理,不会上传。

清理选项

处理顺序:NBSP → 行尾 → 行首 → 连续空格 → Tab。

不解析语法:Markdown 行尾空格也可能有意义。Tab 展开作用于全文,空格压成 Tab 仅作用于缩进。

输入与输出各最多 1,000,000 个 UTF-16 码元、50,000 行。保留原换行,下载使用 UTF-8。

变化 3 行 · 删除 5 / 新增 0 · 字符 39 → 34

删除和新增按各步骤消耗、产生的字符累计,不是最小差异;前后字符数按 Unicode 码点计算。

删除多余空格时,最容易误删的是看起来没有内容、实际上承担排版作用的字符。同样一段间隙,可能是普通空格、Tab,也可能是不换行空格;粘贴进表格或代码后,差别才会出现。

空白字符清理面板在左侧保留原文,右侧按所选规则给出结果。示例包含缩进和混合换行,用来观察哪些间隙被处理、哪些仍然保留,不需要凭肉眼猜测一整行有没有变化。

为什么在这里删除多余空格

只清行尾,保留每行起点

删除多余空格不必连缩进一起抹掉。默认规则只去掉每行末尾的普通空格和 Tab;行首前缀保持原样,每一个 CRLF、LF 或 CR 也原样保留。需要改变行首时,再单独开启对应选项。

两侧文本保留相同的行首缩进和换行标记,右侧仅去掉行末多出的空格。

先分清空格类型,再选择转换

原文标记区用不同符号展示普通空格、制表符和 NBSP。开启对应转换后,对照结果再应用到输入;复制或下载取得的是实际文本,不会混入为了查看而添加的圆点和箭头。

制表符箭头与不换行空格的空心标记被转换成普通空格圆点,周围文字块保持不变。

让清理结果保持可检查、可撤销

01

先确认行首是否有意义

去除首尾空格拆成两个逐行开关,默认只开行尾。只有确定不需要缩进时才开行首。清空和载入示例也先显示替换预览,确认后才覆盖当前文本。

02

选择自动还是手动预览

自动模式在停止编辑 350 ms 后更新。关闭自动后,使用预览按钮或 Ctrl/Cmd+Enter 执行。修改原文或处理参数会立即让结果过期,复制、下载和应用同时禁用。

03

应用后保留一次返回机会

先检查变化行数与字符数量,再将结果应用到输入。撤销会同时恢复原文、结果及处理设置。空白标记开关只改变显示,不会触发新一轮清理,也不会影响可导出的文本。

把不同空白问题分开处理

行首与行尾分别清理

行首开关处理每行开头的普通空格和 Tab,行尾开关处理末尾对应字符。只有空格的一行清理后变为空行,该行的分隔符仍然存在,不会连整行一起删除。

合并正文中的连续空格

折叠选项只将正文里连续两个以上的普通空格缩成一个。开头由空格和 Tab 组成的缩进仍受保护;正文 Tab 保持为分隔符,不会被这个选项悄悄吞掉。

单独替换不换行空格

NBSP 选项只将 U+00A0 换成 U+0020,然后再执行首尾清理与折叠。这会改变该位置不允许换行的含义。字面文本   不会被解码成字符,也不会被替换。

按制表位转换缩进

Tab 转空格会在全文中将每个 Tab 展开到下一个制表位,宽度可选 2、4 或 8。反向空格转 Tab 只处理行首缩进,可到达制表位的空格串变为 Tab,余数空格保留。

保留哪些内容,哪些操作需要留意

不做广义 Unicode 清理
全角空格、窄不换行空格、零宽字符、连接符和 BOM 都保留。工具只操作普通空格、Tab 和明确开启的 NBSP,不会把所有看不见的字符视为垃圾。
保持行结构,不处理文件编码
保留每个 CRLF、LF、CR、空行和文末换行,不拼接段落、不提取 PDF,也没有文件导入或编码转换入口。下载按 UTF-8 编码当前文本,不承诺还原原始文件字节。 若清空一行会让前后的单独 CR 和 LF 合成 CRLF,该行空白内容会原样保留,并提示保护的行数。
不能推断代码里的空白含义
没有语法解析器。行首清理会改变缩进,全文 Tab 展开可能改变 TSV 列分隔或 Makefile 命令;行尾两个空格还可能是 Markdown 强制换行。请在实际使用位置核对效果。
输入与展开后的输出均有限额
两端各最多 1,000,000 个 UTF-16 码元和 50,000 行。Tab 展开后超限也会拒绝导出;孤立代理项会报告位置,避免下载时被静默替换。预览分批展示,导出始终包含完整结果。
制表位不等于屏幕上的像素列
计算列位置时,每个 Unicode 码点计一列,汉字、组合附加符和表情也按这个约定处理。不模拟终端字宽,所以不能保证所有字体下的表格都会视觉对齐。

删除多余空格常见问题

会删除单词中间的空格吗?

默认不会。开启连续空格折叠后,正文中两个以上的普通空格会变成一个,单个分隔空格保留。Tab 不属于该折叠规则,必须另选转换方向才会改变。

可以保留段落吗?

可以,所有规则都保留原有换行和空行。即使把某一行的空格清空,分隔该行的字符也还在。本页没有删除全部换行或合并段落的操作。

能看到不可见字符吗?

可以查看普通空格、Tab、NBSP 和三种换行的标记。高亮符号只是辅助显示;原文本身的圆点或箭头按普通文字处理,不算空白,复制与下载也不会添加高亮标记。

选项按什么顺序运行?

先转换 NBSP,再处理行尾、行首、连续空格,最后转换 Tab。Tab 新展开出来的空格不会在同一轮再次折叠。删除与新增数量按每一步消耗和产生的字符累计,并不等于最小差异或净减少量。

可以去除 HTML 标签吗?

不能。标签、HTML 实体、标点和字母原样保留。这里处理真实的空白字符;如果输入的是   源码,需要先用对应实体解码工具变成字符,才能选择 NBSP 转换。

某一步与预期不同?

检查下一段文本的空白

先用示例体验删除多余空格的实际效果,再粘贴自己的内容,只应用你确认需要的变化。

结果可预览,应用后可撤销一次。