先确认行首是否有意义
去除首尾空格拆成两个逐行开关,默认只开行尾。只有确定不需要缩进时才开行首。清空和载入示例也先显示替换预览,确认后才覆盖当前文本。
文本与字符串
默认仅清理行尾;对照空白标记与结果,确认需要的变化后再应用。
··标题··内容··␍↵ ⇥项目⇥数值·↵ 价格⍽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。开启对应转换后,对照结果再应用到输入;复制或下载取得的是实际文本,不会混入为了查看而添加的圆点和箭头。
去除首尾空格拆成两个逐行开关,默认只开行尾。只有确定不需要缩进时才开行首。清空和载入示例也先显示替换预览,确认后才覆盖当前文本。
自动模式在停止编辑 350 ms 后更新。关闭自动后,使用预览按钮或 Ctrl/Cmd+Enter 执行。修改原文或处理参数会立即让结果过期,复制、下载和应用同时禁用。
先检查变化行数与字符数量,再将结果应用到输入。撤销会同时恢复原文、结果及处理设置。空白标记开关只改变显示,不会触发新一轮清理,也不会影响可导出的文本。
行首开关处理每行开头的普通空格和 Tab,行尾开关处理末尾对应字符。只有空格的一行清理后变为空行,该行的分隔符仍然存在,不会连整行一起删除。
折叠选项只将正文里连续两个以上的普通空格缩成一个。开头由空格和 Tab 组成的缩进仍受保护;正文 Tab 保持为分隔符,不会被这个选项悄悄吞掉。
NBSP 选项只将 U+00A0 换成 U+0020,然后再执行首尾清理与折叠。这会改变该位置不允许换行的含义。字面文本 不会被解码成字符,也不会被替换。
Tab 转空格会在全文中将每个 Tab 展开到下一个制表位,宽度可选 2、4 或 8。反向空格转 Tab 只处理行首缩进,可到达制表位的空格串变为 Tab,余数空格保留。
默认不会。开启连续空格折叠后,正文中两个以上的普通空格会变成一个,单个分隔空格保留。Tab 不属于该折叠规则,必须另选转换方向才会改变。
可以,所有规则都保留原有换行和空行。即使把某一行的空格清空,分隔该行的字符也还在。本页没有删除全部换行或合并段落的操作。
可以查看普通空格、Tab、NBSP 和三种换行的标记。高亮符号只是辅助显示;原文本身的圆点或箭头按普通文字处理,不算空白,复制与下载也不会添加高亮标记。
先转换 NBSP,再处理行尾、行首、连续空格,最后转换 Tab。Tab 新展开出来的空格不会在同一轮再次折叠。删除与新增数量按每一步消耗和产生的字符累计,并不等于最小差异或净减少量。
不能。标签、HTML 实体、标点和字母原样保留。这里处理真实的空白字符;如果输入的是 源码,需要先用对应实体解码工具变成字符,才能选择 NBSP 转换。
某一步与预期不同?