Book Image

JavaScript Regular Expressions

By : Gabriel Manricks, Loiane Groner, Loiane Groner [Duplicate entry]
Book Image

JavaScript Regular Expressions

By: Gabriel Manricks, Loiane Groner, Loiane Groner [Duplicate entry]

Overview of this book

Table of Contents (13 chapters)

Quantifiers


In the following table, you can find the patterns for quantifiers, which specify how many instances of a character, group, or character class must be present in an input for a match to be found.

Pattern

Description

Example

{n}

This matches exactly n occurrences of a regular expression.

/\d{5}/ matches "12345" (five digits) in "1234567890".

{n,}

This matches n or more occurrences of a regular expression.

/\d{5,}/ matches "1234567890" (minimum of five digits) in "1234567890".

{n,m}

This matches n to m number of occurrences of a regular expression.

/\d{5,7}/ matches "1234567" (minimum of five digits and a maximum of seven digits) in "1234567890".

*

This matches zero or more occurrences and is equivalent to {0,}.

/fo*/ matches "foo" in "foo" and matches "foooooooo" in "fooooooooled".

+

This matches one or more occurrences and is equivalent to {1,}.

/o+/ matches "oo" in "foo".

?

This matches zero or one occurrences and is equivalent to {0,1}.

/fo?/ matches "fo" in "foo" and matches "f" in "fairy".

+?

*?

"?" can also be used following one of the *, +, ?, or {} quantifiers to make the later match nongreedy, or the minimum number of times versus the default maximum.

/\d{2,4}?/ matches "12" in the "12345" string, instead of "1234" due to "?" at the end of the quantifier nongreedy.

x(?=y)

Positive lookahead: It matches x only if it's followed by y. Note that y is not included as part of the match, acting only as a required condition.

/Java(?=Script|Hut)/ matches "Java" in "JavaScript" or "JavaHut", but not "JavaLand".

x(?!y)

Negative lookahead: It matches x only if it's not followed by y. Note that y is not included as part of the match, acting only as a required condition.

/^\d+(?! years)/ matches "5" in "5 days" or "5 books", but not "5 years".