Проверьте UITextField при редактировании для другого регулярного выражения - PullRequest
0 голосов
/ 03 марта 2020

Я хотел бы проверить мой passwordTextField во время редактирования. У меня есть три разных критерия:

  1. не менее 8 символов
  2. не менее 1 заглавной и строчной буквы
  3. не менее 1 ди git

У меня уже есть эта функция, которая мне нужна для проверки сразу всех трех случаев:

static func isPasswordValid(_ password : String) -> Bool {

    let passwordTest = NSPredicate(format: "SELF MATCHES %@", "^(?=.*[A-Z]).(?=.*[0-9]).(?=.*[a-z]).{8,}$")
    return passwordTest.evaluate(with: password)
}

Но сейчас мне нужно проверять разные случаи отдельно при редактировании мой textField.

Мне в основном нужны 3 различные проверки регулярных выражений внутри какого-то whileEditing метода, который я застрял здесь ...

Есть ли простой способ сделать это?

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Используйте метод UITextField EventListner, чтобы проверить ваши условия. Вы также можете установить ниже в Nibs или Storyboards,

textField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)

enter image description here

0 голосов
/ 03 марта 2020

Это passwordTest.evaluate(with: password) возвращает результат попадания неизвестного предиката, поэтому вы должны разделить их, чтобы обработать то, что вам нужно, например, может быть 8 символов, но между ними нет цифр

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