RegexToolbox.js
Regular expression tools for JavaScript developers.
Installation
npm i regextoolbox
RegexBuilder
RegexBuilder
is a class for building regular expressions in a more human-readable way using a fluent API. It offers a number of benefits over using raw regex syntax in strings:
- No knowledge of regular expression syntax is required: just use simple, intuitively-named classes and methods.
- Code is easier to read, understand and maintain.
- Code is safer and far less prone to regular expression syntax errors and programmer errors.
It is fully documented in the project wiki.
⚠️ Breaking changes in 2.0
Improved group syntax
The grouping methods have been totally overhauled in version 2.0 to make them easier to use and less error-prone.
Go from this:
const regex = new RegexBuilder()
.startGroup()
.digit()
.letter()
.buildRegex(); // ERROR: forgot to call endGroup()
To this:
const regex = new RegexBuilder()
.group(r => r
.digit()
.letter()
)
.buildRegex();
Details of breaking changes:
Removed | Replaced with |
---|---|
startGroup() ... endGroup() |
group() |
startNonCapturingGroup() ... endGroup() |
nonCapturingGroup() |
butAsFewAsPossible
is now a getter
Go from this:
RegexQuantifier.oneOrMore.butAsFewAsPossible()
to this:
RegexQuantifier.oneOrMore.butAsFewAsPossible
Also new in 2.0
Support for named groups
Support for named groups has been added. Where the captured values for regular groups are retrieved like this:
const regex = new RegexBuilder()
.group(r => r
.uppercaseLetter()
)
.lowercaseLetter(RegexQuantifier.oneOrMore)
.buildRegex();
const initial = regex.exec("Mark")[1]; // "M"
the captured values for named groups are retrieved like this:
// Get a number using a group of digits
const regex = new RegexBuilder()
.namedGroup("initialLetter", r => r
.uppercaseLetter()
)
.lowercaseLetter(RegexQuantifier.oneOrMore)
.buildRegex();
const initial = regex.exec(input).groups.initialLetter; // "M"
Also for JavaScript developers
MimeTypes.js: MIME type constants for your JavaScript projects