I need help with a regex matching a number. I need up to 3 digits after the dot (.):
12345 ok 12 ok 12.1 ok 12.12 ok 12.123 ok 12.1234 Error 1.123456 Error
how to do it? Thanks in advance.
\d+(?:\.\d{1,3})?
Explanation:
\d+ # multiple digits (?: # start non-capturing group \. # a dot \d{1,3} # 1-3 digits )? # end non-capturing group, made optional
^\d+(\.\d{1,3})?$
You can try:
^\d+|(\d+\.\d{1,3})$
\d
- Single digit\d+
- one or more digits, that is a
number.\.
- dot is a metachar..so to match a
literal dot, you'll need to escape
it.{1,3}
- between 1 to 3 (both
inclusive) repetitions of the
previous thing.^
and $
- Anchors so that we match
entire thing not just part of
something.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