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.
Table of Contents
(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});
About
Related projects
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert.
Released under the MIT license.
This file was generated by verb-generate-readme, v0.1.31, on October 04, 2016.