Нужно отключить возможность ввода более одного "-" символа
Есть данное регулярное выражение /^[-0-9\b]+(\.\d{0,2})?$/ для валидации положительных и отрицательных чисел
Он отлично работает и для положительных и для отрицательных(например -12.34), но пользователь может несколько раз ввести знак минуса(пример: -12-3-4.12).
Как я могу переписать вышеупомянутый код, чтобы можно было вводить только один минус и только в начале строки?
Ответы (1 шт):
У вас в коде, похоже, используется такой метод, который использует проверку с регулярным выражением для валидации по мере ввода символов ("live validation"). В таких случаях необходимо использовать такое выражение, которое состоит из необязательных шаблонов, т.е. таких, которые могут находить пустую строку.
/^(-(?!\.))?\d*\.?\d{0,2}$/
Это выражение находит
^- начало строки(-(?!\.))?- необязательный символ-, после которого не должно быть симола.\d*- ноль и более цифр\.?- ноль или одна точка\d{0,2}- 0, 1 или 2 цифры$- конец строки.