RegExp constructor creates a regular expression object for matching text with a pattern.
Literal, constructor, and factory notations are possible:
/pattern/flags new RegExp(pattern[, flags]) RegExp(pattern[, flags])
RegExpobject or literal (for the two RegExp constructor notations only). Patterns may include special characters to match a wider range of values than would a literal string.
flags is a string that contains the flags to add.
Alternatively, if an object is supplied for the pattern, the
flags string will replace any of that object's flags (and
lastIndex will be reset to
0) (as of ES2015).
flags is not specified and a regular expressions object is supplied, that object's flags (and
lastIndex value) will be copied over.
flags may contain any combination of the following characters:
uflag is also enabled, use Unicode case folding.
$) as working over multiple lines. In other words, match the beginning or end of each line (delimited by
\r), not only the very beginning or end of the whole input string.
.to match newlines.
patternas a sequence of Unicode code points. (See also Binary strings).
lastIndexproperty of this regular expression in the target string. Does not attempt to match from any later indexes.
There are two ways to create a
RegExp object: a literal notation and a constructor.
The following three expressions create the same regular expression:
/ab+c/i new RegExp(/ab+c/, 'i') // literal notation new RegExp('ab+c', 'i') // constructor
The literal notation results in compilation of the regular expression when the expression is evaluated. Use literal notation when the regular expression will remain constant. For example, if you use literal notation to construct a regular expression used in a loop, the regular expression won't be recompiled on each iteration.
The constructor of the regular expression object—for example,
new RegExp('ab+c')—results in runtime compilation of the regular expression. Use the constructor function when you know the regular expression pattern will be changing, or you don't know the pattern and are getting it from another source, such as user input.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.