猫工具站
帮助中心 猫Blog 关于我们 广告合作 EN

文本格式化

大小写转换、排序、去重、去除空行、添加行号、全半角转换等。

输入文本
0 字符 | 0 行
操作
结果

相关指南

清理文本与统计文本:这两个页面数的不是同一件事
格式化器的 15 个动作各自按不同规则改写文本,排序、去重、全角半角转换都有隐藏前提;而站上两个「字数」统计的口径根本不一样。

Advertisement

输入框与结果框的关系

左边是可编辑的输入框,右边是只读的结果框。15 个操作按钮依次是:大写、小写、首字母大写、合并空格、去除首尾空格、去除空行、去重、升序排序、降序排序、添加行号、去除行号、反转行序、反转文本、全角转半角、半角转全角,下面另有清空、复制结果和「结果 → 输入」三个。

一个必须知道的习惯:每个按钮读的都是输入框里的当前内容,处理结果写到右边,不会叠在上一条结果上。想连着做两步(比如先去空行再排序),要中间点一次「结果 → 输入」把输出搬回输入框,否则第二步做的还是原始文本。

大小写与空格

大写和小写用的是浏览器内置的一般大小写映射,不跟随你的浏览器语言环境。对英文完全可靠,但对某些语言会有例外,比如土耳其语里 i 与 ı、İ 的对应关系和英语不同,这一页给出的始终是英语口径的结果。

「首字母大写」只在英文单词的边界上工作:它识别的是字母、数字和下划线开头的词,所以中文内容不会被改动,而像 self-contained 这样的连写词会被当成一个词,只有 s 变大写、后面整体转小写。「合并空格」把连续多个空白收成一个,「去除首尾空格」清理每段两端。

按行操作与排序

所有行类操作按换行符切分,Windows 与 Unix 两种换行都认。「去重」比较的是整行文本,区分大小写也区分行内空格,保留每一行的首次出现位置。「添加行号」给每一行都编号,包括空行;「去除行号」能识别 1. 、1、 和 1) 三种写法。

排序走的是中文拼音次序,并且做了不区分大小写、忽略重音的处理,数字按数值比较——所以 file2 会排在 file10 前面,而不是按字符逐个比。反转行序就是简单地把行数组倒过来;如果文本末尾有一个空行,反转后它会跑到最前面。

反转文本与全角半角

「反转文本」按 Unicode 码点倒序,一个带重音的字母算一个字符不会被拆坏;但由多个码点拼起来的图形(旗帜、家庭组合表情、带零宽连接符的序列)会被拆开重排,出现乱码外观。

全角转半角处理的是全角标点与全角字母数字这一整段,另外把全角空格换成半角空格;半角转全角则覆盖基本拉丁字符区,普通空格会变成全角空格。半角片假名那一小段区不在这次转换范围内,会原样保留。

常见问题

为什么点第二个按钮,第一个的改动没了?
因为每个操作都从输入框重新取原文,结果只写到右侧只读框。连续处理时请先点「结果 → 输入」,把上一步的输出搬回输入框再做下一步。输出为空时这个搬运按钮不会有反应。

去重会不会忽略大小写或多空格?
不会。判断依据是整行文本严格相等,大小写不同或者行尾多一个空格都算不同的行。想要真正的语义去重,请先做去除首尾空格和合并空格,再去重。

排序是按什么规则排的?
用浏览器的中文拼音排序器,同时不区分大小写、忽略重音,并把数字串按数值比较。所以中文按拼音先后,英文 file2 在 file10 之前。降序就是把这套比较反过来。

反转文本会把 emoji 弄坏吗?
有可能。它按码点反转,单个码点的带音标字母没事,由多个码点和连接符组成的图形会被拆散重排,看起来就乱了。需要保留这类图形请只对行做反转,不要对文本整体反转。

能处理中文吗?
分操作看:排序按拼音、去重和行号按行工作都没问题;但大写、小写和首字母大写三个操作对汉字不起作用,因为大小写映射本身是拉丁字母的概念。

文本会被上传吗?有没有长度上限?
不会上传,全部转换都在浏览器本地完成,也没有设长度上限。只是超长文本下排序和反转会比较慢,并且复制依赖浏览器剪贴板接口,需要由你真实点击触发。