У меня есть регулярное выражение для проверки пароля, которое должно быть не менее 8 символов и должно содержать буквы (в верхнем и нижнем регистре) и специальный символ из набора ^ $ *.[] {} ()?- "! @ #% & / \,> <':; | _ ~`. </p>
У меня 2 проблемы, после добавления / к reg exp он не распознается (другие символы по-прежнему работают нормально.Если я добавлю /], то выражение больше не будет работать (все неверно, хотя шаблон выглядит нормально в режиме отладки браузера).
Строка регулярного выражения
static get PASSWORD_VALIDATION_REGEX(): string {
return '(?=.*[a-z])(?=.*[0-9])(?=.*[A-Z])' + // contains lowercase number uppercase
'(?=.*[\-~\$@!%#<>\|\`\\\/\[;:=\+\{\}\.\(\)*^\?&\"\,\'])' + // special
'.{8,}'; // more than allowed char
}
Iиспользовал регулярное выражение в качестве валидатора формы и в качестве совпадения в функции
password: ['', {validators: [Validators.required,
Validators.pattern(StringUtils.PASSWORD_VALIDATION_REGEX)
],
updateOn: 'change'
}
]
//....
value.match(StringUtils.PASSWORD_VALIDATION_REGEX)
Пытался использовать только (?=.*[\\])
для списка специальных символов, в этом случае я получил консольную ошибку Invalid regular expression: /^(?=.*[a-z])(?=.*[0-9])(?=.*[A-Z])(?=.*[\]).{8,}$/: Unterminated character class
Для '(?=.*[\]])'
нет ошибки консоли, но в проверке формы 'pattern' присутствует следующая ошибка
actualValue: "AsasassasaX000[[][]"
requiredPattern: "^(?=.*[a-z])(?=.*[0-9])(?=.*[A-Z])(?=.*[]]).{8,}$"
Сбой того же значения и шаблона https://regex101.com/
СпасибоЗа вашу помощь / предложения заранее!