Лично я бы просто проверил на 0 и сделал бы регулярное выражение намного проще, но вот решение, где требуемые десятичные разряды можно изменить, изменив {1,3}.
Суть этогорегулярное выражение заключается в том, что мы допускаем любое число больше двух цифр, затем разрешаем только 1-9 для одной цифры, а затем необязательно требуем до 1 десятичного знака с 1-3 цифрами впоследствии.
const r = /^((([0-9]{2,}){1}|[1-9]{1})(\.[0-9]{1,3}){0,1})$/;
const tests = ['1','2','0','1.001','1.001.1','999.001','9.01','9.0100','abc'];
tests.forEach(t=>console.log(t,r.test(t)));