regextag v1.0.0
RegExTag
This is a tag for template literals that allows you create regular expressions more easily.
Requirements
As template literals are a part of ES6, you need an engine that supports ES6.
Usage
In the nutshell:
let RegExTag = require('regextag');
let myRegexp = RegExTag({ignoreCase: true, verbose: true})`
^ # Start of the line
.* # Match every char
${n} # Then contents of the n variable
$ # End of the line
`;
myRegexp; // /^.*42$/iThe overall usage is: RegExTag ( options ) ` template `
Options
Options is an object with the following boolean fileds.
global, ignoreCase, multiline
Works just as usual regexp modifiers.
RegExTag ({global: true, ignoreCase: true, multiline: true}) `foobar`; // /foobar/gimNote that ignoreCase name is, unfortunately, case dependent.
sticky
An experimental regexp modifier. May be unsupported by your engine.
RegExTag ({sticky: true}) `foobar`; // If you're lucky enough, then /foobar/yunicode
An experimental regexp modifier. May be unsupported by your engine.
RegExTag ({unicode: true}) `foobar`; // If you're lucky enough, then /foobar/uverbose
Not a regexp modifier but rather a parser option. Ignores all the whitespaces in the template and adds comments starting from #.
RegExTag ({verbose: true}) `
Hello world! # That's what every coder writes at least once :)
`; // /Helloworld!/dotAll
An another parser option. If provided, dot (.) is replaced by [^] that matches everything.
Dot is not replaced if escaped and in character classes and template substitutions.
RegExTag ({dotAll: true}) `.*[.,]\.`; // /[^]*[.,]\./Template
Just like plain old regular expressions. There's no need to escape backslashes twice, `\s` produces /\s/.
RegExTag () `Foo\s*bar`; // /foo\s*bar/You can use template literal substitutions and it would be escaped for you.
let variable = '.*';
RegExTag () `^foo${variable}bar`; // /foo\.\*bar/10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
