# @ar-nelson/foldcase 中文文档

规范地址：https://npmcn.com/package/%40ar-nelson/foldcase/

版本：1\.0\.1
npm 元数据更新时间：2022-04-04T15:14:13.900Z
中文译文更新时间：2026-11-06T22:20:38.842Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40ar-nelson/foldcase
原文对照：https://npmcn.com/package/%40ar-nelson/foldcase/?lang=original
项目主页：https://github.com/ar-nelson/foldcase#readme
源码仓库：https://github.com/ar-nelson/foldcase

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

- 包体积（解压后）：39.9 kB，8 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2019-09-09T22:28:14.112Z
- 最新版本发布：2019-09-11T14:54:21.528Z
- 近 30 天下载量：2264（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 0 个）

## 中文简介

简单和完整的 Unicode 大小写

## 安装

```sh
npm install @ar-nelson/foldcase
```

也可以使用：`pnpm add @ar-nelson/foldcase`、`yarn add @ar-nelson/foldcase`、`bun add @ar-nelson/foldcase`

## README

# 折叠: JavaScript 执行 Unicode 大小写折叠算法

这是一个小节点模块,用于执行 [Unicode 大小写 算法](https://www.w3.org/International/wiki/Case_folding),在简单和完整的变体中,通过生成转换 从表格 [正式大小写折叠表 `unicode.org`](http://www.unicode.org/Public/UNIDATA/CaseFolding.txt)。 。 。 .

```
const foldcase = require('@ar-nelson/foldcase');

foldcase('ABC123'); // => 'abc123'
```

`foldcase` 类似 `String.prototype.toLowerCase`但不一样 内容 意图用途是大小写不敏感字符串比较.

[大小写折叠](https://unicode.org/faq/casemap_charprop.html#2) 各 Unicode 版本保持不变,尽管 `toLowerCase`'行为可能改变. 例如,因为切罗基脚本 最初Unicode中只有大写字符,小写字符 后来又增加了, `foldcase` 切罗基文本转换为 _大写_。 。 。 .

```
foldcase('ꮳꮃꭹ'); // => 'ᏣᎳᎩ'
```

这个模块没有依赖性,应该在节点和现代浏览器上运行. 因为它使用一些ES6特性(`\u{…}` 逃脱, `Array.from`它不会运行 在任何版本的IE上,没有转录和多填充.

使用 `npm test` 来测试一下 使用 `npm run codegen` 重新生成 `case-tables.js` 从表格 `unicode.org` (可能只工作于Linux).

**洞穴空道:** 因为它是在纯JS中执行的,它运作在 32位代码点而不是16位字符,这个算法是 _缓慢_。仅限 用这个 `toLowerCase` 如果你知道为了兼容性需要它.

## API 密码

### `foldcase(String)`

别名 `foldcase.full`。 。 。 .

### `foldcase.full(String)`

应用完整的 Unicode 大小写折叠算法。 此算法可能转换一些 单字符为多字符.

```
foldcase.full('Weiß'); // => 'weiss'
```

### `foldcase.simple(String)`

应用简单的 Unicode 大小写折叠算法。 简单的算法不会 更改其输入字符串的长度(以代码为单位).

```
foldcase.simple('Weiß'); // => 'weiß'
```

### `foldcase.charFull(String)`

将完整的 Unicode 大小写折叠算法应用到单个代码点. 代码 分点可能是一对取而代之的对子,因此争论可能是一串长度为一或二. 如果参数不是一个代码点, 或者没有大小写折叠 转换后,参数不变.

```
foldcase.charFull('A');   // => 'a'
foldcase.charFull('FOO'); // => 'FOO'
```

此版本的大小写折叠可能将单个字符转换为多个 字符键.

```
foldcase.charFull('ß'); // => 'ss'
```

### `foldcase.charSimple(String)`

将简单的 Unicode 大小写折叠算法应用到单个代码点. 这个 代码点可能是一对代词,所以参数可能是一串长度 1或2号. 如果参数不是一个代码点, 或者没有案例 折叠转换, 参数将保持不变地返回 .

```
foldcase.charSimple('A');   // => 'a'
foldcase.charSimple('FOO'); // => 'FOO'
```

此版本的大小写折叠在给定时总是返回一个代码点 一个代码点.

```
foldcase.charSimple('ß'); // => 'ß'
```

## 常见问题

### @ar-nelson/foldcase 是什么？

简单和完整的 Unicode 大小写

### 如何安装 @ar-nelson/foldcase？

在项目目录运行 npm install @ar-nelson/foldcase，或使用 pnpm add / yarn add / bun add。

### @ar-nelson/foldcase 支持 TypeScript 吗？

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

### @ar-nelson/foldcase 支持 ESM 还是 CommonJS？

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

### @ar-nelson/foldcase 可以商用吗？

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

### @ar-nelson/foldcase 的下载量有多少？

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

### @ar-nelson/foldcase 还在维护吗？

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

