regextag

1.0.0 • Public • Published

RegExTag

"npm install 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$/i
 

The 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/gim
 

Note 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/y
 

unicode

An experimental regexp modifier. May be unsupported by your engine.

 
RegExTag ({unicode: true}) `foobar`; // If you're lucky enough, then /foobar/u
 

verbose

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/
 

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.0.02latest

Version History

VersionDownloads (Last 7 Days)Published
1.0.02
1.0.0-rc.21
1.0.0-rc.10
1.0.0-alpha.21
1.0.0-alpha.10

Package Sidebar

Install

npm i regextag

Weekly Downloads

1

Version

1.0.0

License

WTFPL

Last publish

Collaborators

  • subzey