a number with no leading zero
Matches a number with no leading zero. It is anchored at both ends, so the whole string has to match. There are no capture groups.
Pattern
/^(?:0|[1-9]\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
- 2024
Examples that do not match
- 007
- 01
Other expressions in this group
^\.-?[_a-z][_a-z0-9-]*$a CSS class selector^M{0,3}(?:CM|CD|D?C{0,3})(?:XC|XL|L?X{0,3})(?:IX|IV|V?I{0,3})$a Roman numeral^-?(?:90(?:\.0+)?|[1-8]?\d(?:\.\d+)?)$a latitude value^-?(?:180(?:\.0+)?|1[0-7]\d(?:\.\d+)?|\d{1,2}(?:\.\d+)?)$a longitude value^\d*[02468]$an even number^\s*$a blank line^\d{4}-W(?:0[1-9]|[1-4]\d|5[0-3])$an ISO week number, up to week 53^#(?:[0-9a-f]{4}|[0-9a-f]{8})$a hex colour that carries alphaHow 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
QWhat is the regex for a number with no leading zero?
^(?:0|[1-9]\d*)$.
QWhich strings match?
Text like 0 matches; text like 007 does not.
QDoes the whole string have to match?
Yes. It is wrapped in ^ and $, so nothing but a full match passes.
QHow 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.