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
escape-string-regexp
This package provides functionality to escape string input so that it can be used in a regular expression. While it doesn't convert strings to regex patterns directly, it's useful for preparing strings that will be dynamically inserted into regex patterns. It's more focused on escaping than generating regex patterns.
regexify-string
Similar to 'to-regex', 'regexify-string' allows for transforming strings into regular expressions. However, it focuses more on replacing parts of strings with regex patterns. It's a bit more specialized in terms of functionality, offering a different approach to working with dynamic regex patterns.
to-regex
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'));
console.log(toRegex('foo', {negate: true}));
console.log(toRegex('foo', {contains: true}));
console.log(toRegex(['foo', 'bar'], {negate: true}));
console.log(toRegex(['foo', 'bar'], {negate: true, contains: true}));
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}));
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}));
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}));
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'}));
console.log(toRegex('foo', {flags: 'gmi', nocase: true}));
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'));
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
Related projects
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.