fill-range

中文文档
7.1.1发布于 2024/05/21MITCommonJS近 30 天下载 6.5亿

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

中文使用文档
文档目录13 节
  1. 安装
  2. 用法
  3. 例子
  4. 选项
  5. options.step
  6. options.strictRanges
  7. options.stringify
  8. options.toRegex
  9. options.transform
  10. 关于
  11. 贡献者
  12. 作者
  13. 许可证

fill-range Donate NPM version NPM monthly downloads NPM total downloads Linux Build Status

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

请考虑跟随这个项目的作者, Jon Schlinkert,并考虑主演该项目,以展示您的: 心: 和支持。

安装

安装与 npm:

$ npm install --save fill-range

用法

展开数字和字母,可选地使用 step 作为最后一个论点。 (数字可以定义为JavaScript数字或字符串)。

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: {字符串| | |对象数量函数} 可选地传递 步骤 使用。
  • options: {对象|函数}:查看所有可用的 选项

例子

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

字母的范围

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

数值范围

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

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

消极的范围

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

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' ]

步骤(增量)

// 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

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

示例(年代)

// 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 在无效范围上。

示例(年代)

以下选项均无效:

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

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

示例(年代)

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兼容的源字符串,而不是将值扩展到数组。

示例(年代)

// 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

描述:自定义返回数组(或数组)中的每个值 字符串). (也可以将此函数作为最后一个参数传递给 fill())。

示例(年代)

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

关于

贡献

拉请求和明星总是受欢迎的。对于bug和特性请求, 请创建一个问题。

运行测试

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

$ npm install && npm test
建立文档

(这个项目的自述。Md由 动词请不要直接编辑自述文件。对自述文件的任何更改都必须在 .verb.md 自述文件模板)。

使用实例生成自述文件。

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

贡献者

| 提交 | 贡献者 |
| --- | --- |
| 116 | jonschlinkert |
b| 4 b| 鲍尔米尔 |
| 2 | realityking |
| 2 | bluelovers |
| 1 | edorivai |
| 1 | wtgtybhertgeghgtwtg |

作者

Jon Schlinkert

请考虑在Patreon上支持我,或者 创建自己的Patreon页面!

许可证

版权所有©2019 Jon Schlinkert。 根据 麻省理工学院的许可。


该文件由 动词-生成-自述文件, v0.8.0,于2019年4月8日发布。

版本与发布记录

fill-range 共发布 33 个版本,首次发布于 2014/11/25;过去 12 个月发布了 0 个版本。

版本发布日期距今
7.1.1latest2024/05/212 年前
7.0.12019/04/087 年前
7.0.02019/04/087 年前
6.0.02018/07/058 年前
2.2.4patch2018/05/098 年前
5.0.02017/11/019 年前

关于 fill-range 的常见问题

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/04 – 2026/11/02 这 30 天内被下载 647,421,367 次,日均约 21,580,712 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

fill-range 还在维护吗?

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