反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈! 反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈!
v1.0 · 已上线中英双语纯客户端

文本排序Text Sort

一键对文本按字母 / 数字 / 拼音排序,支持升序、降序与随机打乱,配合四种分隔粒度,整理名单、数据列、清单更快。数据全程不上传。

本周使用—·收藏743·版本v1.0.0·最后更新今天·完全免费
排序方式
·分隔符
·字符46
输入UTF-8 · 10 行
输出UTF-8
排序结果会显示在这里…
排序

工具介绍

3 段详细说明

文本排序是一键整理顺序的文本处理工具,支持字母 A→Z、字母 Z→A、数字 1→9、数字 9→1、随机打乱五种排序方式。名单、编号、价格列、待办清单直接粘贴进来,一键得到有序结果。

所有计算都在浏览器内存中完成,文本不上传任何服务器。基于原生 Intl.Collator 与 Array.prototype.sort(稳定排序):英文按字典序、中文按拼音、数字按数值自然排序,10 万行以内瞬时完成。

配套四个实用能力:按行 / 逗号 / 空格 / 分号四种分隔粒度,以及忽略大小写、去首尾空白、跳过空行三个开关。支持 ⌘+↵ 快捷键执行、复制一键带走。

基础知识 · 排序原理

Intl.Collator · O(n log n)

文本排序的本质是确定条目之间的先后关系:给定一个「比较规则」,把所有条目排成有序序列。理解以下 6 个核心概念,就能预判任何排序结果:

1Intl.Collator本地化比较器
基于原生 Intl.Collator 实现,按语言习惯比较字符串:一次构建、全程复用,比反复调用 localeCompare 快数倍,10 万行排序也无压力。
2pinyin拼音排序
中文按拼音顺序排列:「苹果(píng)」<「香蕉(xiāng)」。中英数字混排时整体顺序为:数字 → 中文(拼音)→ 英文(字母表),由 ICU 语言规则统一决定,各浏览器结果一致。
3numeric自然数字排序
数字模式加 numeric: true:把字符串里的连续数字当作数值比较,"2" < "10"(纯字典序会把 "10" 排在 "2" 前面),"file2" < "file10" 同理正确。
4stable sort稳定排序
JavaScript Array.prototype.sort 自 ES2019 起保证稳定排序:比较结果相同的条目保持原始先后顺序。降序用反转比较器 compare(b, a) 实现(而非 reverse()),同样不打乱同级顺序。
5Fisher-Yates公平洗牌
随机模式用 Fisher-Yates 从后往前,每步把第 i 项与随机 j ∈ [0, i] 交换,每个排列等概率 1/n!。sort(() => Math.random() - 0.5) 有统计偏差,不采用。
6compare key比较键与输出
排序只看比较键(原始值 → 可选 trim → 忽略大小写时归一化比较),输出始终保留归一化后的值。「忽略大小写」只影响先后判定,不改动文本内容本身;不做 Unicode 规范化,全角/半角、组合字符视为不同内容,避免误合并真实不同的数据。
排序算法速记
排序只看比较键(原始值 → 可选 trim → 比较归一化),输出保留归一化后的值:
coll = new Intl.Collator("zh-Hans-CN", { numeric, sensitivity }) —— 一次构建,全程复用。
升序 arr.sort((a, b) => coll.compare(a, b));降序用 coll.compare(b, a) 反转比较器,保持稳定。
随机:for i = n-1 → 1,swap(arr[i], arr[rand(0, i)]),每个排列等概率。
复杂度:时间 O(n log n) + 空间 O(n),n 为条目数;1 MB 文本(约 3 万行)通常 < 200ms。

使用说明

4 步快速入门
1
粘贴文本
把待排序的文本贴到左侧输入框,或点击「示例」一键填充
2
选分隔符
顶部工具栏切换按行 / 逗号 / 空格 / 分号,匹配你的数据格式
3
选排序方式
字母 A→Z / Z→A、数字 1→9 / 9→1 或随机打乱,按需开启忽略大小写等选项
4
排序带走
点「排序」或按 ⌘+↵,右侧显示有序结果,点「复制」一键带走

使用场景

5 个真实案例
01名单按拼音排序

班级、公司通讯录按姓氏拼音 A→Z 排列,中英文名混排也能一次理顺,开启去首尾空白清理粘贴残留。

02数字列按大小排

价格、分数、编号列按数字 1→9 / 9→1 排序,"10" 正确排在 "2" 后面,不会被字典序坑。

03随机打乱抽签

点名顺序、抽奖名单、测试用例执行顺序随机化,Fisher-Yates 算法保证每个排列等概率出现。

04编号自然排序

file2 与 file10、第2章 与 第10章 这类编号按自然数字顺序排列,数字模式自动识别数字段。

05配合文本去重

先去重再排序,得到一份干净且有序的名单;两步都在浏览器本地完成,适合清洗导出的数据列。

常见问题

10 个问答
文本排序是什么?有什么用?

把一组文本按规则重新排列:字母序、数字序或随机顺序。常用于名单按拼音排序、数字列按大小排、随机抽签、编号自然排序等场景,省去在 Excel 里手动排序的麻烦。

我的文本会上传到服务器吗?

不会。所有排序计算在浏览器内存中完成,输入内容不上传任何服务器。可断网使用、关闭网络后再打开仍能正常使用。

支持多大的文本?

建议 ≤ 10 MB。基于 Intl.Collator 的排序时间复杂度 O(n log n),10 万行以内瞬时完成;构建一次 Collator 全程复用,无重复开销。

中文按什么顺序排?

按拼音排(中文语言习惯的排序规则):「苹果(píng)」排在「香蕉(xiāng)」前面。中英数字混排时整体顺序为:数字 → 中文(拼音)→ 英文(字母表),各浏览器遵循同一 ICU 语言规则,结果一致。

数字排序和字母排序有什么区别?

字母排序逐字符比较字典序,"10" 会排在 "2" 前面;数字排序开启 numeric 自然排序,按数值大小比较,"2" < "10","file2" < "file10"、"第2章" < "第10章" 都能正确排列。

排序是稳定的吗?相同的条目会乱序吗?

稳定。Array.prototype.sort 自 ES2019 起保证稳定排序,比较结果相同的条目保持原始先后顺序;降序用反转比较器实现(而非 reverse),同样稳定。

随机打乱公平吗?每次点都会变吗?

公平。采用 Fisher-Yates 洗牌算法从后往前交换,每个排列出现的概率严格相等(1/n!)。点击「排序」或再次点击「随机」都会重新打乱,不满意可以多点几次。

"忽略大小写""去首尾空白""跳过空行"分别做什么?

忽略大小写:"apple" 与 "Apple" 视为同级,按大小写不敏感的规则排先后;去首尾空白:清除每条前后的空格、制表符后再比较和输出;跳过空行:直接丢弃空条目,不进入排序结果。

与 Excel 的排序有什么区别?

Excel 需要打开文件、导入数据、选列排序再导出;本工具粘贴即用、秒级完成,支持分隔符与大小写等细粒度控制,适合临时、轻量的文本整理场景。

输出结果可以一键复制吗?

可以。点击「复制」按钮即可把排序结果复制到剪贴板,按行模式输出多行文本,其他模式以对应分隔符连接,可直接粘贴回 Excel、文档或代码。

相关工具

文本分类

数据来源

隐私优先
算法:基于浏览器原生 Intl.Collator 与 Array.prototype.sort(ES2019+ 稳定排序),随机模式用 Fisher-Yates 洗牌。无任何第三方依赖、无 WASM、无 polyfill。
隐私声明:所有计算均在浏览器内存完成,输入内容不上传任何服务器。本工具不记录任何输入、不埋任何分析点。可断网使用,关闭网络后再打开仍能正常使用。