Socket
Socket
Sign inDemoInstall

to-regex

Package Overview
Dependencies
14
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    to-regex

Generate a regex from a string or array of strings.


Version published
Weekly downloads
12M
decreased by-1.33%
Maintainers
1
Install size
152 kB
Created
Weekly downloads
 

Package description

What is to-regex?

The 'to-regex' npm package is designed to convert strings or arrays of strings into regular expressions. This can be particularly useful for dynamically generating regex patterns from user input or other variable data sources. It supports a variety of options to customize the generated regular expressions, such as adding flags, enabling strict mode, or specifying whether the pattern should match the whole string or any part of it.

What are to-regex's main functionalities?

Converting a string to a regex

This feature allows you to convert a simple string into a regular expression. It's useful for cases where you need a regex pattern but are starting with a plain string.

const toRegex = require('to-regex');

const regex = toRegex('foo');
console.log(regex); //=> /foo/

Converting an array of strings to a single regex

This feature enables the conversion of an array of strings into a single regular expression that matches any of the strings in the array. It's particularly useful for creating patterns that can match multiple possible strings.

const toRegex = require('to-regex');

const regex = toRegex(['foo', 'bar']);
console.log(regex); //=> /(foo|bar)/

Using options to customize the regex

This feature demonstrates how to use options to customize the generated regex. In this example, the 'contains' option makes the pattern match any part of the string that contains 'foo', and the 'flags' option adds global and case-insensitive flags to the regex.

const toRegex = require('to-regex');

const regex = toRegex('foo', { contains: true, flags: 'gi' });
console.log(regex); //=> /(?:foo)/gi

Other packages similar to to-regex

Readme

Source

to-regex NPM version NPM monthly downloads NPM total downloads Linux Build Status

Generate a regex from a string or array of strings.

Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.

(TOC generated by verb using markdown-toc)

Install

Install with npm:

$ npm install --save to-regex

Usage

var toRegex = require('to-regex');

console.log(toRegex('foo'));
//=> /^(?:foo)$/

console.log(toRegex('foo', {negate: true}));
//=> /^(?:(?:(?!^(?:foo)$).)*)$/

console.log(toRegex('foo', {contains: true}));
//=> /(?:foo)/

console.log(toRegex(['foo', 'bar'], {negate: true}));
//=> /^(?:(?:(?!^(?:(?:foo)|(?:bar))$).)*)$/

console.log(toRegex(['foo', 'bar'], {negate: true, contains: true}));
//=> /^(?:(?:(?!(?:(?:foo)|(?:bar))).)*)$/

Options

options.contains

Type: Boolean

Default: undefined

Generate a regex that will match any string that contains the given pattern. By default, regex is strict will only return true for exact matches.

var toRegex = require('to-regex');
console.log(toRegex('foo', {contains: true}));
//=> /(?:foo)/

options.negate

Type: Boolean

Default: undefined

Create a regex that will match everything except the given pattern.

var toRegex = require('to-regex');
console.log(toRegex('foo', {negate: true}));
//=> /^(?:(?:(?!^(?:foo)$).)*)$/

options.nocase

Type: Boolean

Default: undefined

Adds the i flag, to enable case-insensitive matching.

var toRegex = require('to-regex');
console.log(toRegex('foo', {nocase: true}));
//=> /^(?:foo)$/i

Alternatively you can pass the flags you want directly on options.flags.

options.flags

Type: String

Default: undefined

Define the flags you want to use on the generated regex.

var toRegex = require('to-regex');
console.log(toRegex('foo', {flags: 'gm'}));
//=> /^(?:foo)$/gm
console.log(toRegex('foo', {flags: 'gmi', nocase: true})); //<= handles redundancy
//=> /^(?:foo)$/gmi

options.cache

Type: Boolean

Default: true

Generated regex is cached based on the provided string and options. As a result, runtime compilation only happens once per pattern (as long as options are also the same), which can result in dramatic speed improvements.

This also helps with debugging, since adding options and pattern are added to the generated regex.

Disable caching

toRegex('foo', {cache: false});

options.safe

Type: Boolean

Default: undefined

Check the generated regular expression with safe-regex and throw an error if the regex is potentially unsafe.

Examples

console.log(toRegex('(x+x+)+y'));
//=> /^(?:(x+x+)+y)$/

// The following would throw an error
toRegex('(x+x+)+y', {safe: true});

About

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Running Tests

Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:

$ npm install && npm test
Building docs

(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)

To generate the readme, run the following command:

$ npm install -g verbose/verb#dev verb-generate-readme && verb

You might also be interested in these projects:

Author

Jon Schlinkert

License

Copyright © 2018, Jon Schlinkert. Released under the MIT License.


This file was generated by verb-generate-readme, v0.6.0, on February 24, 2018.

Keywords

FAQs

Last updated on 24 Feb 2018

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc