# natural-compare 中文文档

规范地址：https://npmcn.com/package/natural-compare/

版本：1\.4\.0
npm 元数据更新时间：2023-06-22T16:33:03.092Z
中文译文更新时间：2026-11-04T23:48:13.658Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/natural-compare
原文对照：https://npmcn.com/package/natural-compare/?lang=original
项目主页：https://github.com/litejs/natural-compare-lite#readme
源码仓库：https://github.com/litejs/natural-compare-lite

## 关键信息（来自 npm 元数据）

- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2014-11-18T01:04:27.323Z
- 最新版本发布：2016-07-22T20:48:12.217Z
- 近 30 天下载量：574805148（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 0 个）

## 中文简介

以人类的方式比较包含字母和数字混合的字符串，按排序顺序进行比较。

## 安装

```sh
npm install natural-compare
```

也可以使用：`pnpm add natural-compare`、`yarn add natural-compare`、`bun add natural-compare`

## README

```
@version    1.4.0
@date       2015-10-26
@stability  3 - Stable
```

# 〇自然比较 [![Build](http://img.shields.io/travis/litejs/natural-compare-lite.png)](https://travis-ci.org/litejs/natural-compare-lite) [![Coverage](http://img.shields.io/coveralls/litejs/natural-compare-lite.png)](https://coveralls.io/r/litejs/natural-compare-lite)

比较包含字母和数字混合的字符串 就像人类按照排序顺序一样。 这被称为“自然排序”。

```text
Standard sorting:   Natural order sorting:
    img1.png            img1.png
    img10.png           img2.png
    img12.png           img10.png
    img2.png            img12.png
```

字符串。naturalCompare返回一个数字，表示 引用字符串是在前面还是后面，还是相同 作为给定字符串的排序顺序。 与内置的sort（）函数一起使用。

### 安装

-   在浏览器

```html
<script src=min.natural-compare.js></script>
```

-   在node . js: `npm install natural-compare-lite`

```javascript
require("natural-compare-lite")
```

### 用法

```javascript
// Simple case sensitive example
var a = ["z1.doc", "z10.doc", "z17.doc", "z2.doc", "z23.doc", "z3.doc"];
a.sort(String.naturalCompare);
// ["z1.doc", "z2.doc", "z3.doc", "z10.doc", "z17.doc", "z23.doc"]

// Use wrapper function for case insensitivity
a.sort(function(a, b){
  return String.naturalCompare(a.toLowerCase(), b.toLowerCase());
})

// In most cases we want to sort an array of objects
var a = [ {"street":"350 5th Ave", "room":"A-1021"}
        , {"street":"350 5th Ave", "room":"A-21046-b"} ];

// sort by street, then by room
a.sort(function(a, b){
  return String.naturalCompare(a.street, b.street) || String.naturalCompare(a.room, b.room);
})

// When text transformation is needed (eg toLowerCase()),
// it is best for performance to keep
// transformed key in that object.
// There are no need to do text transformation
// on each comparision when sorting.
var a = [ {"make":"Audi", "model":"A6"}
        , {"make":"Kia",  "model":"Rio"} ];

// sort by make, then by model
a.map(function(car){
  car.sort_key = (car.make + " " + car.model).toLowerCase();
})
a.sort(function(a, b){
  return String.naturalCompare(a.sort_key, b.sort_key);
})
```

-   可以很好地处理ISO格式的日期，例如“Rev 2012-07-26.doc”。

### 定制的字母

可以配置自定义字母 达到所期望的顺序。

```javascript
// Estonian alphabet
String.alphabet = "ABDEFGHIJKLMNOPRSŠZŽTUVÕÄÖÜXYabdefghijklmnoprsšzžtuvõäöüxy"
["t", "z", "x", "õ"].sort(String.naturalCompare)
// ["z", "t", "õ", "x"]

// Russian alphabet
String.alphabet = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
["Ё", "А", "Б"].sort(String.naturalCompare)
// ["А", "Б", "Ё"]
```

## 外部链接

-   \[GitHub回购\]\[[https://github.com/litejs/natural-compare-lite](https://github.com/litejs/natural-compare-lite)］
-   [jsperf测试](http://jsperf.com/natural-sort-2/12)

## 执照

版权所有(c) 2012-2015 Lauri Rooden <lauri@rooden.ee>  
[麻省理工学院许可证](http://lauri.rooden.ee/mit-license.txt)

## 常见问题

### natural-compare 是什么？

以人类的方式比较包含字母和数字混合的字符串，按排序顺序进行比较。

### 如何安装 natural-compare？

在项目目录运行 npm install natural-compare，或使用 pnpm add / yarn add / bun add。

### natural-compare 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/natural-compare 是否存在。

### natural-compare 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### natural-compare 可以商用吗？

natural-compare 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### natural-compare 的下载量有多少？

根据 npm 官方下载统计，natural-compare 在 2026/10/05 – 2026/11/03 这 30 天内被下载 574,805,148 次，日均约 19,160,172 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### natural-compare 还在维护吗？

最新版本 1\.4\.0 发布于 2016/07/23（10 年前）；至今共发布 2 个版本，其中过去 12 个月发布了 0 个；首次发布于 2014/11/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

