JavaScript RegExp
New to JavaScript RegExp?
RexExp Modifiers
RexExp modifiers, also known as flags, alter the behavior of a regular expression.
They are appended after the pattern in a regex literal:
/pattern/flags
or passed as an argument to the RegExp constructor:
new RegExp(pattern, flags)
Flag | Description |
---|---|
/d | Performs substring matches (new 2022) |
/g | Performs a global match (find all) |
/i | Performs case-insensitive matching |
/m | Performs multiline matching |
/s | Allows . (dot) to match line terminator characters (new 2018) |
/u | Enables Unicode support (new 2015) |
/v | An upgrade to the /u flag for better Unicode support (new 2025) |
/y | Performs a "sticky" search (new 2015) |
RexExp Brackets
Brackets are used to find a range of characters:
[] | Description |
---|---|
[abc] | Find any character between the brackets |
[^abc] | Find any character NOT between the brackets |
[0-9] | Find any character between the brackets (any digit) |
[^0-9] | Find any character NOT between the brackets (any non-digit) |
(x|y) | Find any of the alternatives specified |
RexExp Metacharacters
Metacharacters are characters with a special meaning:
Char | Description |
---|---|
. | Find a single character, except newline or line terminator |
\w | Find a word character |
\W | Find a non-word character |
\d | Find a digit |
\D | Find a non-digit character |
\s | Find a whitespace character |
\S | Find a non-whitespace character |
\b | Find a match at the beginning/end of a word, beginning like this: \bHI, end like this: HI\b |
\B | Find a match, but not at the beginning/end of a word |
\0 | Find a NULL character |
\n | Find a new line character |
\f | Find a form feed character |
\r | Find a carriage return character |
\t | Find a tab character |
\v | Find a vertical tab character |
\xxx | Find the character specified by an octal number xxx |
\xdd | Find the character specified by a hexadecimal number dd |
\udddd | Find the Unicode character specified by a hexadecimal number dddd |
RexExp Quantifiers
Quant | Description |
---|---|
n+ | Matches any string that contains at least one n |
n* | Matches any string that contains zero or more occurrences of n |
n? | Matches any string that contains zero or one occurrences of n |
n{X} | Matches any string that contains a sequence of X n's |
n{X,Y} | Matches any string that contains a sequence of X to Y n's |
n{X,} | Matches any string that contains a sequence of at least X n's |
n$ | Matches any string with n at the end of it |
^n | Matches any string with n at the beginning of it |
?=n | Matches any string that is followed by a specific string n |
?!n | Matches any string that is not followed by a specific string n |
Browser Support
/regexp/
is an ECMAScript1 (JavaScript 1997) feature.
It is supported in all browsers:
Chrome | Edge | Firefox | Safari | Opera | IE |
Yes | Yes | Yes | Yes | Yes | Yes |