Werawoolf
@Werawoolf
Frontend Engineer

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

Необходимо написать директиву которая бы блочила ввод на инпутах если введенный символ противоречит маске. Все бы ничего, но нужен функционал такого рода. Написать в директиву регулярное выражение и по ней каждый раз проверять, соответствует ли введенный символ этому выражению. Есть конечно ngPattern, но он просто говорит, соответствует или нет заданному регулярному выражению. А нужно именно блокировать ввод если регулярное выражение нарушено. Не знаю как проверить часть рег. выражения, поэтому на скорую руку сделал множественные выражения для каждого символа (https://github.com/Monstro13/multi-patterns-mask). Но это тоже не выход. так как если в выражении необходимо 2 или более статических последовательностей, то это не поможет.
Например проверка того же года. Разрешить даты 1900 - 2100. Если вешать на каждый символ рег. выражение то будут проходить неправильные даты: 2999 например.
Хотелось бы узнать, возможно ли решение данной проблемы? Повторюсь, что нужно именно динамически отслеживать соответствие рег. выражению и при необходимости блочить ввод.
  • Вопрос задан
  • 293 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
А зачем вы биндите keyPress? Есть же ngModel, не валидно - ресетим значение на последнее валидное (невалидное значение не записывается в $modelValue).
Ответ написан
Ваш ответ на вопрос

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

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