re.js
v1.1.0
Published
RegExp API for Humans!
Downloads
6
Maintainers
Readme
re.js
© 2016, Onur Yıldırım (@onury). MIT License.
RegExp API for Humans!
- Friendly API! e.g.
re(pattern).each(input, callback) - Universal module (Browser/Node/CommonJS/AMD)
- Small size. Only 1.5 KB minified, gzipped.
- Well documented.
Installation
Install via NPM:
npm i re.jsInstall via Bower:
bower install re.jsUsage
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); // —> trueMatch 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
Change Log
v1.1.0
.eachRight()callback parameterindexis now reversed. (last iteration index will be0.)- Added
.eachInverse()method for iterating over non-matched blocks. #experimental - Added extra argument to callbacks for convenience:
charIndex(same asmatches.index).
v1.0.0
- Initial release.
License
MIT.
