regextoolbox

Regular expression tools for JavaScript developers


Keywords
regex, regular expression, regular expressions, pattern matching, javascript, javascript-library, pattern-matching, regexes, regexp, regular-expression, regular-expressions
License
Apache-2.0
Install
npm install regextoolbox@1.0.0

Documentation

icon

RegexToolbox.js CircleCI npm npm

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

icon MimeTypes.js: MIME type constants for your JavaScript projects

RegexToolbox for other languages

icon RegexToolbox for .NET

icon RegexToolbox for Java

icon RegexToolbox for Kotlin.


RegexToolbox: Now you can be a hero without knowing regular expressions.