У меня есть реактивная проверка форм для пароля, и шаблон выглядит следующим образом:
new RegExp('^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#$^+=!*()@%&]).{8,50}$');
Моя цель - проверить строку таким образом:
- От 8 до 50 символов
- Имеет строчную букву
- Имеет прописную букву
- Имеет число
- И имеет символ
По какой-то причине он работает как брелок, но если я ввожу пароль, начинающийся с одного числа, проверка не пройдёт.
Что я делаю не так? Примеры паролей:
1dD5a971 # - не совпадает
11dD5a971 # - не совпадает
Код angular:
static PASSWORD_PATTERN = new RegExp('^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#$^+=!*()@%&]).{8,50}$');
this.form= fb.group({
user: [...],
password: ['', [Validators.compose([
Validators.required,
Validators.min(8),
Validators.max(50),
Validators.pattern(AddUserComponent.PASSWORD_PATTERN)
])]]
};
Заранее спасибо.