все работает, но у меня строка проверяется после ввода каждого символа, почему то не позволяет поставить точку, если так оставить, а если ^[1-9]\d*?(\.\d{0,2})?$ разрешить от [0,2] знаков после запятой, тогда позволяет поставить точку.
И еще сразу забыл упомянуть, нужно если первый символ ноль, тогда после него сразу должна быть точка, или больше ничего нельзя было ввести.