expand-range NPM version

Faster, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. See the benchmarks.

Benchmarks

node benchmark

Example usage

var expand = require('expand-range');

expand('1..3')
//=> ['1', '2', '3']

expand('5..8')
//=> ['5', '6', '7', '8']

expand('00..05')
//=> ['00', '01', '02', '03', '04', '05']

expand('01..03')
//=> ['01', '02', '03']

expand('000..005')
//=> ['000', '001', '002', '003', '004', '005']

expand('a..e')
//=> ['a', 'b', 'c', 'd', 'e']

expand('A..E')
//=> ['A', 'B', 'C', 'D', 'E']

Custom function

Pass a function as the last argument to customize the expansions:

Params:

  • str the expanded string
  • ch the unicode value for the string
  • i the current index

Example using the str value:

var range = expand('a..e', function (str, ch, i) {
  return str + i;
});

console.log(range);
//=> ['a0', 'b1', 'c2', 'd3', 'e4']

Example using the unicode value:

var range = expand('a..e', function (str, ch, i) {
  return String.fromCharCode(ch) + i;
});

console.log(range);
//=> ['a0', 'b1', 'c2', 'd3', 'e4']

Install

Install with npm:

npm i expand-range --save-dev

Run tests

npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Author

Jon Schlinkert

License

Copyright (c) 2014 Jon Schlinkert, contributors.
Released under the MIT license


This file was generated by verb-cli on October 25, 2014.