Невозможно сопоставить регулярное выражение, причина: не могу открыть шаблон - PullRequest
0 голосов
/ 15 февраля 2020

Я получаю это сообщение об ошибке при наборе «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
   }

Как мне избавиться от этого? Есть ли опечатка или что-то? Я не понимаю, и я благодарен за любую помощь:)

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