expand-range

Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by micromatch.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Install
Install with npm:
$ npm install --save expand-range
Example usage
var expand = require('expand-range');
expand('start..end..step', options);
// examples
console.log(expand('1..3')) //=> ['1', '2', '3']
console.log(expand('1..10..3')) //=> [ '1', '4', '7', '10' ]
Params
start
: the number or letter to start withend
: the number or letter to end withstep
: (optional) the step/increment to use. works with letters and numbers.options
: Options object to pass to fill-range, or a transform function (see fill-range readme for details and documentation)
This library wraps fill-range to support range expansion using ..
separated strings. See fill-range for the full list of options and features.
Examples
expand('a..e')
//=> ['a', 'b', 'c', 'd', 'e']
expand('a..e..2')
//=> ['a', 'c', 'e']
expand('A..E..2')
//=> ['A', 'C', 'E']
expand('1..3')
//=> ['1', '2', '3']
expand('0..-5')
//=> [ '0', '-1', '-2', '-3', '-4', '-5' ]
expand('-9..9..3')
//=> [ '-9', '-6', '-3', '0', '3', '6', '9' ])
expand('-1..-10..-2')
//=> [ '-1', '-3', '-5', '-7', '-9' ]
expand('1..10..2')
//=> [ '1', '3', '5', '7', '9' ]
Custom function
Optionally pass a custom function as the second argument:
expand('a..e', function (val, isNumber, pad, i) {
if (!isNumber) {
return String.fromCharCode(val) + i;
}
return val;
});
//=> ['a0', 'b1', 'c2', 'd3', 'e4']
Benchmarks
[object Object]
History
v2.0.0
Changes
- Special
step
characters are no longer supported, as the same thing can be accomplished with a custom transform function. - The signature in the transform function has changed. See fill-range for more details.
About
sh
$ npm install && npm test
sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Related projects
You might also be interested in these projects:
- braces: Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support… more | homepage
- fill-range: Fill in a range of numbers or letters, optionally passing an increment or
step
to… more | homepage - micromatch: Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | homepage
Contributors
Commits | Contributor |
---|---|
65 | jonschlinkert |
1 | dcohenb |
1 | stevelacy |
Author
Jon Schlinkert
License
Copyright © 2018, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.8.0, on November 26, 2018.