# fill-range 中文文档

规范地址：https://npmcn.com/package/fill-range/

版本：7\.1\.1
npm 元数据更新时间：2026-05-27T19:50:30.642Z
中文译文更新时间：2026-11-04T19:26:16.571Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/fill-range
原文对照：https://npmcn.com/package/fill-range/?lang=original
项目主页：https://github.com/jonschlinkert/fill-range
源码仓库：https://github.com/jonschlinkert/fill-range

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

- 包体积（解压后）：16.7 kB，4 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=8
- 运行依赖：1 个
- 首次发布：2014-11-25T07:08:17.514Z
- 最新版本发布：2024-05-21T08:45:51.224Z
- 近 30 天下载量：667799102（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：33（近 12 个月 0 个）

## 中文简介

填充数字或字母的范围，可选择传递一个增量或 `step` 来使用或创建与regex兼容的范围 `options.toRegex`

## 安装

```sh
npm install fill-range
```

也可以使用：`pnpm add fill-range`、`yarn add fill-range`、`bun add fill-range`

## README

# fill-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range)

> 填充数字或字母的范围，可选择传递一个增量或 `step` 来使用或创建与regex兼容的范围 `options.toRegex`

请考虑跟随这个项目的作者， [Jon Schlinkert](https://github.com/jonschlinkert),并考虑主演该项目，以展示您的: 心: 和支持。

## 安装

安装与 [npm](https://www.npmjs.com/)：

```sh
$ npm install --save fill-range
```

## 用法

展开数字和字母，可选地使用 `step` 作为最后一个论点。 _（数字可以定义为JavaScript数字或字符串）_。

```js
const fill = require('fill-range');
// fill(from, to[, step, options]);

console.log(fill('1', '10')); //=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
console.log(fill('1', '10', { toRegex: true })); //=> [1-9]|10
```

**参数个数**

-   `from`： **{字符串|数字}** 开头的数字或字母
-   `to`： **{字符串|数字}** 结尾的数字或字母
-   `step`： **{字符串| | |对象数量函数}** 可选地传递 [步骤](https://npmcn.com/package/fill-range/#readme-optionsstep) 使用。
-   `options`： **{对象|函数}**：查看所有可用的 [选项](https://npmcn.com/package/fill-range/#readme-options)

## 例子

默认情况下，返回一个值数组。

**字母的范围**

```js
console.log(fill('a', 'e')); //=> ['a', 'b', 'c', 'd', 'e']
console.log(fill('A', 'E')); //=> [ 'A', 'B', 'C', 'D', 'E' ]
```

**数值范围**

数字可以定义为实际数字或字符串。

```js
console.log(fill(1, 5));     //=> [ 1, 2, 3, 4, 5 ]
console.log(fill('1', '5')); //=> [ 1, 2, 3, 4, 5 ]
```

**消极的范围**

数字可以定义为实际数字或字符串。

```js
console.log(fill('-5', '-1')); //=> [ '-5', '-4', '-3', '-2', '-1' ]
console.log(fill('-5', '5')); //=> [ '-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5' ]
```

**步骤(增量)**

```js
// numerical ranges with increments
console.log(fill('0', '25', 4)); //=> [ '0', '4', '8', '12', '16', '20', '24' ]
console.log(fill('0', '25', 5)); //=> [ '0', '5', '10', '15', '20', '25' ]
console.log(fill('0', '25', 6)); //=> [ '0', '6', '12', '18', '24' ]

// alphabetical ranges with increments
console.log(fill('a', 'z', 4)); //=> [ 'a', 'e', 'i', 'm', 'q', 'u', 'y' ]
console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ]
console.log(fill('a', 'z', 6)); //=> [ 'a', 'g', 'm', 's', 'y' ]
```

## 选项

### options.step

**类型**： `number` （格式化为字符串或数字）

**默认的**： `undefined`

**描述**：范围的增量。可与字母或数字连用。

**示例(年代)**

```js
// numbers
console.log(fill('1', '10', 2)); //=> [ '1', '3', '5', '7', '9' ]
console.log(fill('1', '10', 3)); //=> [ '1', '4', '7', '10' ]
console.log(fill('1', '10', 4)); //=> [ '1', '5', '9' ]

// letters
console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ]
console.log(fill('a', 'z', 7)); //=> [ 'a', 'h', 'o', 'v' ]
console.log(fill('a', 'z', 9)); //=> [ 'a', 'j', 's' ]
```

### options.strictRanges

**类型**： `boolean`

**默认的**： `false`

**描述**：默认情况下， `null` 在传递无效范围时返回。启用此选项以抛出 `RangeError` 在无效范围上。

**示例(年代)**

以下选项均无效：

```js
fill('1.1', '2');   // decimals not supported in ranges
fill('a', '2');     // incompatible range values
fill(1, 10, 'foo'); // invalid "step" argument
```

### options.stringify

**类型**： `boolean`

**默认的**： `undefined`

**描述**：将所有返回值强制转换为字符串。默认情况下，整数作为数字返回。

**示例(年代)**

```js
console.log(fill(1, 5));                    //=> [ 1, 2, 3, 4, 5 ]
console.log(fill(1, 5, { stringify: true })); //=> [ '1', '2', '3', '4', '5' ]
```

### options.toRegex

**类型**： `boolean`

**默认的**： `undefined`

**描述**：创建一个与regex兼容的源字符串，而不是将值扩展到数组。

**示例(年代)**

```js
// alphabetical range
console.log(fill('a', 'e', { toRegex: true })); //=> '[a-e]'
// alphabetical with step
console.log(fill('a', 'z', 3, { toRegex: true })); //=> 'a|d|g|j|m|p|s|v|y'
// numerical range
console.log(fill('1', '100', { toRegex: true })); //=> '[1-9]|[1-9][0-9]|100'
// numerical range with zero padding
console.log(fill('000001', '100000', { toRegex: true }));
//=> '0{5}[1-9]|0{4}[1-9][0-9]|0{3}[1-9][0-9]{2}|0{2}[1-9][0-9]{3}|0[1-9][0-9]{4}|100000'
```

### options.transform

**类型**： `function`

**默认的**： `undefined`

**描述**：自定义返回数组（或数组）中的每个值 [字符串](https://npmcn.com/package/fill-range/#readme-optionstoRegex)）. _(也可以将此函数作为最后一个参数传递给 `fill()`）_。

**示例(年代)**

```js
// add zero padding
console.log(fill(1, 5, value => String(value).padStart(4, '0')));
//=> ['0001', '0002', '0003', '0004', '0005']
```

## 关于

**贡献**

拉请求和明星总是受欢迎的。对于bug和特性请求， [请创建一个问题](https://npmcn.com/issues/new)。

**运行测试**

运行和审查单元测试是熟悉库及其API的好方法。可以使用以下命令安装依赖项并运行测试：

```sh
$ npm install && npm test
```
**建立文档**

_(这个项目的自述。Md由 [动词](https://github.com/verbose/verb-generate-readme)请不要直接编辑自述文件。对自述文件的任何更改都必须在 [.verb.md](https://npmcn.com/package/fill-range/.verb.md) 自述文件模板)。_

使用实例生成自述文件。

```sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
```

### 贡献者

| **提交** | **贡献者** |  
| --- | --- |  
| 116 | [jonschlinkert](https://github.com/jonschlinkert) |  
b| 4 b| [鲍尔米尔](https://github.com/paulmillr) |  
| 2 | [realityking](https://github.com/realityking) |  
| 2 | [bluelovers](https://github.com/bluelovers) |  
| 1 | [edorivai](https://github.com/edorivai) |  
| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |

### 作者

**Jon Schlinkert**

-   [GitHub概要](https://github.com/jonschlinkert)
-   [Twitter](https://twitter.com/jonschlinkert)
-   [LinkedIn的资料](https://linkedin.com/in/jonschlinkert)

请考虑在Patreon上支持我，或者 [创建自己的Patreon页面](https://patreon.com/invite/bxpbvm)！

[![](https://c5.patreon.com/external/logo/become_a_patron_button@2x.png)](https://www.patreon.com/jonschlinkert)

### 许可证

版权所有©2019 [Jon Schlinkert](https://github.com/jonschlinkert)。 根据 [麻省理工学院的许可](https://npmcn.com/package/fill-range/LICENSE)。

* * *

_该文件由 [动词-生成-自述文件](https://github.com/verbose/verb-generate-readme)， v0.8.0，于2019年4月8日发布。_

## 常见问题

### fill-range 是什么？

填充数字或字母的范围，可选择传递一个增量或 step 来使用或创建与regex兼容的范围 options\.toRegex

### 如何安装 fill-range？

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

### fill-range 支持 TypeScript 吗？

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

### fill-range 支持 ESM 还是 CommonJS？

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

### fill-range 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=8。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### fill-range 可以商用吗？

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

### fill-range 的下载量有多少？

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

### fill-range 还在维护吗？

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

