Common RegExp
This is shamelessly stolen from the brilliant site 30secondsofcode
Exact string match
- Use the
^
and$
anchors to match the start and end of the string, respectively. - Add the string you want to match in-between the two anchors.
const regexp = /^abc$/
// Where 'abc' is the exact string you want to match
Match empty string
- Use the
^
and$
anchors to match the start and end of the string, respectively. - Do not add any characters in-between to match an empty string.
const regexp = /^$/
Match whitespace sequences
- Use the
\s
meta-sequence to match any whitespace character, including spaces, tabs, newlines, etc. - Use the
+
quantifier to match one or more occurrences of the previous character. - Add the global flag
g
to match all occurrences of the pattern in the string.
const regexp = /\s+/g
Match line breaks
- Depending on the environment, line breaks can be represented in different ways.
- Use the
\r
character to match carriage returns, the\n
character to match newlines, and the\r\n
sequence to match carriage returns followed by newlines. - Add the global
g
and multilinem
flags to match all occurrences of the pattern in the string.
const regexp = /\r|\n|\r\n/gm
Match email
- Use the
^
and$
anchors to match the start and end of the string, respectively. - Add the ignore case flag
i
to match both uppercase and lowercase characters. - Use the
+
quantifier to match one or more occurrences of the previous character.
const regexp =
/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i
Match non-word characters
- Use negation
^
to match any character that is not a word character\w
or a whitespace character\s
. - Add the global flag
g
to match all occurrences of the pattern in the string. - Add the ignore case flag
i
to match both uppercase and lowercase characters.
const regexp = /[^\w\s]/gi
Match alphanumeric, dashes and hyphens
- Use the
^
and$
anchors to match the start and end of the string, respectively. - Use the
a-zA-Z0-9-
pattern to match any alphanumeric character, dashes and hyphens. - Use the
+
quantifier to match one or more occurrences of the previous character. - Particularly useful when matching URL slugs.
const regexp = /^[a-zA-Z0-9-_]+$/
Match letters and whitespaces
- Use the
^
and$
anchors to match the start and end of the string, respectively. - Use the
a-zA-Z\s
pattern to match any letter and whitespace character. - Use the
+
quantifier to match one or more occurrences of the previous pattern.
const regexp = /^[A-Za-z\s]+$/
Pattern not included
- Use the
^
and$
anchors to match the start and end of the string, respectively. - Use a negative lookahead
?!
to match any character that is not followed by the pattern you want to exclude. - Add the global flag
g
to match all occurrences of the pattern in the string. - To ensure more than one pattern is not included, use the
|
character to separate them.
const regexp = /^((?!(abc|bcd)).)*$/
// Where 'abc' and 'bcd' are pattern you want to exclude
Text inside brackets
- Use the ( and ) characters to match the opening and closing brackets, respectively.
- Use a capturing group between the two and exclude the closing parenthesis character.
- Use the
+
quantifier to match one or more characters, as needed. - Add the global flag
g
to match all occurrences of the pattern in the string. - Replace ( and ) with [ and ] to match square brackets and with { and } to match curly brackets.
const regexp = /\(([^)]+)\)/g
Validate GUID/UUID
- Use the
^
and$
anchors to match the start and end of the string, respectively. - Validate each segment of the GUID/UUID separately using numeric character ranges and quantifiers.
const regexp =
/^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-4[0-9a-fA-F]{3}\-(8|9|a|b)[0-9a-fA-F]{3}\-[0-9a-fA-F]{12}$/
Validate date format (DD/MM/YYYY)
- Use the
^
and$
anchors to match the start and end of the string, respectively. - Validate each segment of the date separately using numeric character ranges and quantifiers.
- Alter the order of the segments and separators to match different formats.
const regexp = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/
Chunk string into n-size chunks
- Use the
.{1,n}
quantifier to match any character between 1 and n times. - Add the global flag
g
to match all occurrences of the pattern in the string.
const regexp = /.{1,2}/g
// Where '2' is the number of characters per chunk