Задать вопрос
@Zewkin
Я у мамы фронтэндер

Как составить регулярное выражение?

Есть директива, которая не позволяет писать в инпут ничего, кроме цифр, точки и минуса:

var transformedInput = inputValue ? inputValue.replace(/[^\d.-]/g,'') : null;


Как переписать его так, чтобы оно не позволяло писать больше двух знаков после точки? Спасибо.
  • Вопрос задан
  • 116 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?
/([^\d.-]|(?<=\.\d\d).+)/g
https://regex101.com/r/Ypju79/1

Upd:
Хм. Оказалось в js нет positive lookbehind.
В любом случае, сделать это с помощью одной регулярки адекватного размера не получится.
Проще сделать пост обработочку на js. Вот пример:
codepen.io/anon/pen/QGrYrw
Ответ написан
@datasheet
^[\d-]*(?=(\.\d{0,2})?)(\.\d{0,2})?$
https://regex101.com/r/rrwfHP/2
под знаками после точки подразумевались цифры?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы