Попробуй это! Я тоже так использовал
"^-?[0-9]{1,12}(?:\.[0-9]{1,4})?$"
Правила:
ex: ^-?[0-9]{1,12}(?:\.[0-9]{1,4})?$
^ # Start of string
[0-9]{1,12} # Match 1-12 digits (i. e. 0-999999999999)
(?: # Try to match...
\. # a decimal point
[0-9]{1,4} # followed by one to three digits (i. e. 0-9999)
)? # ...optionally
$ # End of string