fill-range
Fill in a range of numbers or letters, optionally passing an increment or step
to use, or create a regex-compatible range with options.toRegex
Table of Contents
(TOC generated by verb using markdown-toc)
Install
Install with npm:
$ npm install --save fill-range
Usage
Expands numbers and letters, optionally using a step
as the last argument. (Numbers may be defined as JavaScript numbers or strings).
var fill = require('fill-range');
console.log(fill('a', 'e'));
console.log(fill(0, 25, 5));
console.log(fill('a', 'e', {toRegex: true}));
console.log(fill('a', 'z', 3, {toRegex: true}));
console.log(fill('1', '100', {toRegex: true}));
Create regex-compatible ranges (returns a string, which can be used however you need to create a regex):
console.log(fill('a', 'e', {toRegex: true}));
console.log(fill('a', 'z', 3, {toRegex: true}));
console.log(fill('1', '100', {toRegex: true}));
Params
fill(start, stop, step, options, fn);
start
: {String|Number} the number or letter to start withend
: {String|Number} the number or letter to end withstep
: {String|Number} optionally pass the step to use. works for letters or numbers.options
: {Object}:
toRegex
: return a regex-compatible string (still returned as an array for consistency)step
: pass the step on the options as an alternative to passing it as an argumentstrict
: undefined
by default, set to true to throw errors on invalid ranges.
fn
: {Function} optionally pass a function to modify each character. This can also be defined as options.transform
Examples
fill(1, 3)
fill('1', '3')
fill('0', '-5')
fill(-9, 9, 3)
fill('-1', '-10', '-2')
fill('1', '10', '2')
fill('a', 'e')
fill('a', 'e', 2)
fill('A', 'E', 2)
Invalid ranges
When an invalid range is passed, null
is returned.
fill('1.1', '2');
fill('a', '2');
fill(1, 10, 'foo');
If you want errors to be throw, set options.strict
to true.
Custom function
Optionally pass a custom function as last argument or on options.transform
.
var arr = fill('01', '05', function(val, a, b, step, idx, arr, options) {
return repeat('0', (options.maxLength + 2) - val.length) + val;
});
console.log(arr);
About
Related projects
- braces: Fastest brace expansion for node.js, with the most complete support for the Bash 4.3 braces… more | homepage
- expand-range: Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. See… more | homepage
- micromatch: Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | homepage
- to-regex-range: Returns a regex-compatible range from two numbers, min and max, with 855,412 generated unit tests… more | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert.
Released under the MIT license.
This file was generated by verb-generate-readme, v0.1.30, on September 15, 2016.