Summary: in this tutorial, you’ll learn to use quantifiers to match several instances of a character, group, or character class in a string.
Quantifiers specify how many instances of a character, group, or character class must appear in the input string for a match to be found.
Quantity
Exact count {n}
A number in curly braces {n}is the simplest quantifier. When you append it to a character or character class, it specifies how many characters or character classes you want to match.
For example, the regular expression /\d{4}/ matches a four-digit number. It is the same as /\d\d\d\d/:
let str = 'ECMAScript 2020';
let re = /\d{4}/;
let result = str.match(re);
console.log(result);Code language: JavaScript (javascript)Output:
['2020', index: 11, input: 'ECMAScript 2020', groups: undefined]Code language: JavaScript (javascript)The range {n,m}
The range matches a character or character class from n to m times.
For example, to find numbers that have two, three, or four digits, you use the regular expression /\d{2,4}/g:
let str = 'The official name of ES11 is ES2020';
let re = /\d{2,4}/g;
let result = str.match(re);
console.log(result);
Code language: JavaScript (javascript)Output:
["11", "2020"]Code language: JavaScript (javascript)Because the upper limit is optional, the {n,} searches for a sequence of n or more times. For example, the regular expression /\d{2,}/ will match any number that has two or more digits.
let str = 'The official name of ES6 is ES2015';
let re = /\d{2,}/g;
let result = str.match(re);
console.log(result);
Code language: JavaScript (javascript)Output:
["2015"]Code language: JavaScript (javascript)The following example uses the regular expression /\d{1,}/g to match any numbers that have one or more digits in a phone number:
let numbers = '+1-(408)-555-0105'.match(/\d{1,}/g);
console.log(numbers);Code language: JavaScript (javascript)Output:
["1", "408", "555", "0105"]
Code language: JavaScript (javascript)Shorthands
+
The quantifier {1,} means one or more which has the shorthand as +. For example, the \d+ searches for numbers:
let phone = "+1-(408)-555-0105";
let result = phone.match(/\d+/g);
console.log(result);
Code language: JavaScript (javascript)Output:
["1", "408", "555", "0105"]Code language: JavaScript (javascript)?
The quantifier ? means zero or one. It is the same as {0,1}. For example, /colou?r/ will match both color and colour:
let str = 'Is this color or colour?';
let result = str.match(/colou?r/g);
console.log(result);Code language: JavaScript (javascript)Output:
["color", "colour"]Code language: JavaScript (javascript)*
The quantifier * means zero or more. It is the same as {0,}. The following example shows how to use the quantifier * to match the string Java followed by any word character:
let str = 'JavaScript is not Java';
let re = /Java\w*/g
let results = str.match(re);
console.log(results);
Code language: JavaScript (javascript)Output:
["JavaScript", "Java"]
Code language: JavaScript (javascript)We often use quantifiers to form complex regular expressions. The following shows some regular expression examples that include quantifiers:
- Whole numbers:
/^\d+$/ - Decimal numbers:
/^\d*.\d+$/ - Whole numbers and decimal numbers:
/^\d*(.\d+)?$/ - Negative, positive whole numbers & decimal numbers:
/^-?\d*(.\d+)?$/
Summary
The following table lists the quantifiers:
| Quantifier | Description |
|---|---|
* | Match zero or more times. |
+ | Match one or more times. |
? | Match zero or one time. |
{ n } | Match exactly n times. |
{ n ,} | Match at least n times. |
{ n , m } | Match from n to m times. |