I want a regular expression that will accept only floating point numbers from 0 to 9 and minus sign.
Please help.
$ means "Match the end of the string" (the position after the last character in the string). Both are called anchors and ensure that the entire string is matched instead of just a substring.
If UNSIGNED is used with DECIMAL , negative values are not allowed.
To match a character having special meaning in regex, you need to use a escape sequence prefix with a backslash ( \ ). E.g., \. matches "." ; regex \+ matches "+" ; and regex \( matches "(" . You also need to use regex \\ to match "\" (back-slash).
^[-+]?[0-9]*\.?[0-9]+$
^
- start of string[-+]?
- 0 or 1 sign indicator[0-9]*
- 0 or more integers\.
- the character .
(.
is used in regex to mean "any character")[0-9]+
- 1 or more integers$
- the end of the stringIf you are instead using the comma as a decimal seperator, use ,
instead of \.
If you are using both/either, you can use [.,]
Try ^[-+]?[0-9]*[.,]?[0-9]+$
.
This regular expression will match an optional sign, that is either followed by zero or more digits followed by a dot and one or more digits (a floating point number with optional integer part), or followed by one or more digits (an integer).
Source: http://www.regular-expressions.info/floatingpoint.html - altered to work with commas as decimal separator
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