Need a regular expression to validate number with comma separator. 1,5,10,55 is valid but 1,,,,10 is not valid.
This should do it:
^\d+(,\d+)*$
The regex is rather simple: \d+
is the first number, followed by optional commas and more numbers.
You may want to throw in \s*
where you see fit, or remove all spaces before validation.
\d+
with [+-]?\d+
\d+
with [+-]?\d+(?:\.\d+)?
Here are the components of the regex we're going to use:
\d
is the shorthand for the digit character class+
is one-or-more repetition specifier*
is zero-or-more repetition specifier(...)
performs grouping^
and $
are the beginning and end of the line anchors respectivelyWe can now compose the regex we need:
^\d+(,\d+)*$
That is:
from beginning...
| ...to the end
| |
^\d+(,\d+)*$ i.e. ^num(,num)*$
\_/ \_/
num num
Note that the *
means that having just one number is allowed. If you insist on at least two numbers, then use +
instead. You can also replace \d+
with another pattern for the number to allow e.g. sign and/or fractional part.
Optionally you can make the brackets non-capturing for performance:
^\d+(?:,\d+)*$
And if the flavor supports it, you can make all repetition possessive in this case:
^\d++(?:,\d++)*+$
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With