betteregex
Credit to @Hashbrown777 on GitHub for the idea and the original implementation
betteregex
is a tool that allows regex pros to do write cleaner, more understandable regexes. Write regexes without worrying about:
- double backslashing (just write
"\d"
instead of"\\d"
) - adding whitespace for readability
- adding comments
// Comparing two ways of writing RFC2822-like email validation regex
// The normal way: small but cryptic
const emailRegex = /[a-z\d!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z\d!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z\d](?:[a-z\d-]*[a-z\d])?\.)+[a-z\d](?:[a-z\d-]*[a-z\d])?/g
// The betteregex way: longer but straightforward
const { regex } = require('betteregex')
const anythingAllowedInEmail = '[a-z0-9!#$%&\'*+/=?^_`{|}~-]+';
const emailRegex = regex`
// Match one or more alphabet, numbers, one of allowed special characters or tildes
${anythingInEmailRegex}
// Open group
(?:
// Match a dot if any
\.
// Same as before
${anythingInEmailRegex}
// Close group, match one or more greedy
)*
// The @
@
// Open group
(?:
// Provider name (gmail etc.)
[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
// The dot
\.
// Close group
)+
/*
The ending extension
May not match everything becauseextensions are (mostly) letters
*/
[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
${'g'}`
Prerequisites
Before you begin, make sure you have installed NodeJS.
Installation
Install using npm
:
$ npm i betteregex
Usage
const {regex} = require("betteregex")
const exp = regex`
// Your regex here
// Example:
\d+\w\s
.*
`
For more info, read the documentation
License
THis project is licensed under GNU GPL 3.0