re.js


npm release dependencies license maintained

© 2016, Onur Yıldırım (@onury). MIT License.

RegExp API for Humans!

Installation

Install via NPM:

npm i re.js

Install via Bower:

bower install re.js

Usage

For all the features and details, please read the API reference.

const re = require('re.js');

.each()

var input = 'Peter Piper picked a peck of pickled peppers.';

re(/p\w+/i).each(input, function (matches) {
    console.log(matches[0]);
});

Note that above example does not have a g flag (for global) in the RegExp. But logically; since you're calling each() it should search for all. So re automatically fixes it for you.

.eachRight()

Iterate from last match to first.

re(/p\w+/i).eachRight(input, function (matches, index) {
    if (matches[0] === 'peck') {
        console.log('exiting @', index); // —> exiting @ 3
        // return early, no more iterations..
        return false;
    }
});

.map()

var mapped = re(/p\w+/i).map(input, function (matches) {
    return matches[0];
});
console.log(mapped);
// —> ["Peter", "Piper", "picked", "peck", "pickled", "peppers"]

.all()

re(/p\w+/i).all(input);
// —> [Array, Array, Array, Array, Array, Array]

.match()

re(/p\w+/i).match(input);
// —> ["Peter", "Piper", "picked", "peck", "pickled", "peppers"]

.exec().next()

re(/p\w+/i)
    .exec(input)
    .next(function (matches, index) {
        console.log(index + ':', matches[0]); // —> 0: "Peter"
    })
    .next(function (matches, index) {
        console.log(index, ':', matches[0]); // —> 1: "Piper"
    })
    ..

.test()

for convenience...

re(/p\w+/i).test(input); // —> true

Match Indices

re(/p\w+/i).first(input)[0];        // —> "Peter"
re(/p\w+/i).firstIndex(input);      // —> 0
re(/p\w+/i).first(input).index;     // —> 0

re(/none/).first(input);            // —> null
re(/none/).firstIndex(input);       // —> -1
re(/none/).first(input).index;      // —> Error

re(/p\w+/i).last(input)[0];         // —> "peppers"
re(/p\w+/i).lastIndex(input);       // —> 37
re(/p\w+/i).last(input).index;      // —> 37

re(/p\w+/i).nth(input, 3)[0];       // —> "picked"

re(/p\w+/i).indices(input);         // —> [ 0, 6, 12, 21, 29, 37 ]

Documentation

See all methods and features.

Change Log

License

MIT.