Регулярное выражение ^(-?(\d{1,5}(\.\d{0,2})?)?)$
должно работать, если вы хотите сопоставить строки, оканчивающиеся на .
, такие как 123.
демо этого регулярного выражения
В противном случае измените 0
до 1
следующим образом: ^(-?(\d{1,5}(\.\d{1,2})?)?)$
. Тогда он будет соответствовать только строкам, которые имеют ди git после десятичной точки.
Регулярное выражение, которое вы разместили, разрешает строки с более чем 2 цифрами после десятичной точки, потому что оно прекращает сопоставление после 2 цифр, даже если строка продолжается. Добавление $
в конце регулярного выражения останавливает его для сопоставления строк, которые продолжаются после части, которую мы хотим.
Это регулярное выражение ^(-?\d{1,5}(\.\d{0,2})?)$
будет проверять ввод, как только пользователь закончит ввод, потому что я предполагаю, что Вы не хотите, чтобы -
был действительным в этот момент.