Какой формат десятичных чисел вы будете поддерживать в своей области?
Это «Простое регулярное выражение для десятичных чисел?» В StackOverflow подробно описаны возможные регулярные выражения.
^\d+(\.\d{1,2})?$
Может обеспечить число с одним или двумя десятичными знаками, но не будет работать с 34.
(точка без десятичной дроби)
У вас есть много возможных регулярных выражений , перечисленных здесь .
Unkwntech является хорошим полным регулярным выражением, но допускает 1,15223,11,00.
Я бы лучше использовал:
[-+]?(?:\d(\,?(?>\d{3}[.,]))?)*(?:\.\d*)?
Значение, если вы используете ,
, делайте это только в том случае, если за ним следуют 3 цифры (а затем еще одна ,
или точка для десятичных значений. Это обеспечивает цифровую группировку , хотя, как указал Пол в комментариях, есть локаль с более чем тремя цифрами после запятой ...