a percentage from 0 to 100
Matches a percentage from 0 to 100. It is anchored at both ends, so the whole string has to match. There are no capture groups.
Pattern
/^(?:100(?:\.0+)?|\d{1,2}(?:\.\d+)?)%$/- Match scope
- the whole string
- Capture groups
- 0
- What it catches in the first example
- 0%
Try it yourself
Type any text and the parts this expression catches are highlighted. It runs in your browser and is never sent anywhere.
0%
1 match
Examples that match
- 0%
- 99.9%
- 100%
Examples that do not match
- 101%
- 50
- -5%
Other expressions in this group
^\d+$a whole number with no sign^[+-]?\d+$a whole number that may carry a sign^-?\d+(?:\.\d+)?$a number that may have a decimal part^-?\d+(?:\.\d+)?[eE][+-]?\d+$a number in scientific notation^\d{1,3}(?:,\d{3})*$a number grouped with commas^[$€£¥₩]\s?\d{1,3}(?:,\d{3})*(?:\.\d{2})?$an amount with a currency sign^[0-9a-f]+$a hexadecimal string^[01]+$a string of nothing but 0 and 1How to read this
- With ^ and $ around it, the whole string must match; without them the match can sit anywhere. Always anchor an expression you use for validation.
- Round brackets ( ) capture what they wrap. When you only need grouping, write (?: ) so the numbering of later groups does not shift.
- Every expression here is checked against its examples. Even so, "looks like an email" and "is a real inbox" remain different questions.
- Nested open-ended repeats such as (a+)+ can blow up on certain inputs. Look for that shape before pasting someone else’s expression into your code.
Frequently asked questions
Q. What is the regex for a percentage from 0 to 100?
^(?:100(?:\.0+)?|\d{1,2}(?:\.\d+)?)%$.
Q. Which strings match?
Text like 0% matches; text like 101% does not.
Q. Does the whole string have to match?
Yes. It is wrapped in ^ and $, so nothing but a full match passes.
Q. How do I use what it caught?
There are no capture groups, so only the whole match (match[0]) comes back. Wrap the part you need in brackets to capture it.