Я получаю это сообщение об ошибке при наборе «asdf» в textField
после I endEditing
:
Завершение приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Can не соответствует регулярному выражению, причина: не удается открыть шаблон U_REGEX_MISMATCHED_PAREN (строка asdf, шаблон ^ (? =. [AZ]. (? =. [0-9]. (? =. * [ az]. {8} $, case 0, canon 0) '
static func isPasswordValid(_ password : String) -> Bool {
/*
^ Start anchor
(?=.*[A-Z].*[A-Z]) Ensure string has two uppercase letters.
(?=.*[!@#$&*]) Ensure string has one special case letter.
(?=.*[0-9].*[0-9]) Ensure string has two digits.
(?=.*[a-z].*[a-z].*[a-z]) Ensure string has three lowercase letters.
.{8} Ensure string is of length 8.
$ End anchor.
*/
let passwordTest = NSPredicate(format: "SELF MATCHES %@", "^(?=.*[A-Z].(?=.*[0-9].(?=.*[a-z].{8}$")
return passwordTest.evaluate(with: password)
}
Я называю это так:
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
if textField == passwordTextField {
if !Utilities.isPasswordValid(textField.text!){
self.passwordTextField.borderInactiveColor = .red
print("hi")
}
}
return true
}
Как мне избавиться от этого? Есть ли опечатка или что-то? Я не понимаю, и я благодарен за любую помощь:)