Need a regular expression to validate number with comma separator. 1,5,10,55 is valid but 1,,,,10 is not valid.
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++)*+$