文本排序工具

支持 8 种排序模式:字母升序/降序、数值升序/降序、长度升序/降序、自然排序(识别嵌入数字)、 随机打乱。可选大小写敏感、去除空行、排序前 trim、排序后去重。 随机打乱使用 crypto.getRandomValues 实现无偏差洗牌。 适用于名单排序、版本号排列、数据整理、随机抽取顺序等场景。所有处理在浏览器本地完成。

输入文本(每行一条)0
排序模式
选项
0原始行数
0结果行数
排序结果字母升序 (A→Z)
请在上方输入文本后查看排序结果
提示:点击「示例」按钮快速体验排序效果

常见问题

自然排序和字母排序有什么区别?

字母排序按字符的 Unicode 码点逐字符比较,"item10" 排在 "item2" 前面 (因为 "1" < "2")。自然排序会将字符串拆分为文本段与数字段交替比较, 数字段按数值大小比较,因此 "item1" < "item2" < "item3" < "item10" < "item20"。 自然排序更符合人类阅读直觉,适合排序文件名、版本号、章节号等包含数字的文本。

随机打乱是如何实现的?公平吗?

随机打乱采用 Fisher-Yates 洗牌算法,配合浏览器的 crypto.getRandomValues 加密级随机数生成器。 在生成随机索引时使用拒绝采样消除取模偏差—— 当随机值超出最大整数倍范围时重新采样,确保每个位置被选中的概率完全相等。 相比 Math.random() 的伪随机,crypto API 提供更高的随机性质量, 适合抽奖、随机分组等公平性要求高的场景。

数值排序如何处理非数字行?

数值排序模式下,每行通过 parseFloat 尝试解析为数字。 无法解析为数字的行(如纯文本行)会被统一排到结果末尾,保持原始相对顺序。 例如输入 "banana, 42, apple, 7, 123",数值升序结果为 "7, 42, 123, banana, apple"。 注意:parseFloat 会解析行首的数字部分,如 "3.14abc" 被解析为 3.14。

大小写敏感选项有什么作用?

开启大小写敏感时,"Apple" 和 "apple" 被视为不同的值,排序时大写字母 (ASCII 65-90)排在小写字母(ASCII 97-122)前面。关闭时,比较时统一转为小写, "Apple" 和 "apple" 被视为相同值。关闭大小写敏感适合排序人名、地名等 不需要区分大小写的场景,结果更符合阅读习惯。

排序后去重和去除空行有什么区别?

去除空行:排序前过滤掉所有空行(包括纯空格行,如果同时开启了 trim), 减少干扰。排序后去重:排序完成后去除重复行,只保留每条唯一值。 去重时是否区分大小写取决于"大小写敏感"选项。两个选项可独立或组合使用。 注意:排序后去重使用 Set 去重,保留首次出现的位置(已排序后的位置)。

这个工具适合哪些使用场景?

名单排序:按字母排列人名、地名、商品名; ② 版本号排列:用自然排序正确排列 v1、v2、v10、v20 等版本号; ③ 数据整理:CSV/TSV 数据按某列排序后重新组织; ④ 随机抽取:用随机打乱模式打乱名单后取前 N 行作为随机抽取结果; ⑤ 日志排序:按时间戳或 ID 数值排序日志行; ⑥ SEO 关键词整理:按字母排列关键词列表便于审查。

数据会上传到服务器吗?

不会。本工具完全在浏览器内运行,所有排序处理由 JavaScript 在你本地执行, 不会发送任何输入文本或排序结果到服务器。全程零网络请求,可离线使用。