Покажите пользователю много разных сообщений об ошибках для разных шаблонов в элементе управления формой. - PullRequest
0 голосов
/ 26 июня 2018

У меня есть форма, выполненная в HTML, с Angular5.Я использую проверки формы и элементы управления формой, чтобы выдавать сообщения об ошибках, если за ним не следят.

Примерно так:

 this.password = new FormControl('', [Validators.required, Validators.minLength(8),Validators.pattern("^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,16}$"), Validators.maxLength(16)]);

Если этот валидатор не верен, поэтому я показываю пользователю сообщение об ошибке, указываю, что нам нужен пароль, с этим обычнымправила выражения.

Теперь я хочу показать пользователю эти сообщения отдельно.Например:

Пользователь вводит для ввода пароля следующую строку: 'A123'

Мне нужно показать ему, что пароль все еще нуждается в нижнем регистре иусловное обозначение.Если он напишет, что пропущены параметры, значит, сообщение исчезнет.

Вывод: мне нужно показать пользователю, какие правила отсутствуют в строке, которую он вводит при вводе.Я не хочу ничего в том же сообщении, но отдельно.

1 Ответ

0 голосов
/ 26 июня 2018

Попробуйте запустить несколько шаблонов регулярных выражений через него и использовать IsMatch для проверки.

, если .*?[0-9].*? == false "Пожалуйста, введите числовой символ"

, если .*?[A-Z].*? ==false «Пожалуйста, введите заглавную букву» (я не верю, что это будет работать с акцентированными символами)

, если .*?[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?].*? == false «Пожалуйста, введите специальный символ»

, если .{3,16} == false "Пожалуйста, введите пароль длиной от 3 до 16 символов.

Я не думаю, что существует один метод, который подходит всем, который может определить, чего не хватает, он будет знать только, что что-то отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...