Socket
Socket
Sign inDemoInstall

regx

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

regx

Tagged template string regular expression compiler.


Version published
Weekly downloads
36K
decreased by-16.34%
Maintainers
1
Weekly downloads
 
Created
Source

regx

NPM version Downloads Tip

Tagged template string regular expression compiler. Supports multiline expressions, partials, and embedded comments.

Install

$ npm install --save regx

Example

import regx from 'regx';

// RegExp partial to match opening block comment (flags ignored)
const openPartial = /\/\*\*/i;

// String partial to match closing block comment (extra escaping required)
const closePartial = '\\*\\/';

// Time to write a human-readable expression
const expression = regx('gm')`
    // Match a non-recursive block comment
    (
        // Must be first thing on a line
        ^[\t ]*

        ${openPartial} // Block opener

        // Capture content independently
        (
            // Match any character including newlines (non-greedy)
            [\s\S]*?
        )

        ${closePartial} // Block closer
    )

    // Grab trailing newlines and discard them
    [\r\n]*
`;

// The result is the same as if you had written the following
const expression = /(^[\t ]*\/\*\*([\s\S]*?)\*\/)[\r\n]*/gm;

API

regx([flags]) : regxTagFunction

Creates a template-string tag function. Optionally accepts RegExp flags.

const a = regx('gm')`
    ^  // start of line
    a+ // one or more 'a' characters
    $  // end of line
`; // result: /^a+$/gm

regxTagFunction(strings, ...values) : RegExp

The functions returned by regx() may be cached and reused.

const rx = regx('gm');

const a = rx`
    ^  // start of line
    a+ // one or more 'a' characters
    $  // end of line
`; // result: /^a+$/gm

const b = rx`
    ^  // start of line
    b+ // one or more 'b' characters
    $  // end of line
`; // result: /^b+$/gm

All whitespace at the beginning and end of each line is ignored. To match literal whitespace at the beginning or end of a line you must use a character set.

const rx = regx('i');

const spaceBefore = rx`
    [ ]foo bar
`; // result: /[ ]foo bar/i

const spaceAfter = rx`
    foo bar[ ]
`; // result: /foo bar[ ]/i

© 2016 Shannon Moeller me@shannonmoeller.com

Licensed under MIT

Keywords

FAQs

Package last updated on 04 Feb 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc