Вы указываете, что должны быть 1-7 цифр, затем необязательный десятичный знак, а затем еще 1-2 цифры.Попробуйте:
/^[0-9]{1,7}(?:\.[0-9]{1,2})?$/
Обратите внимание, что это не допускает конечных десятичных разрядов (то есть "1.")Если вы хотите разрешить это, это должно работать:
/^[0-9]{1,7}(?:\.[0-9]{0,2})?$/