在编辑不同的正则表达式时检查 UITextField

Check UITextField while editing for different regex

我想在编辑时检查我的 passwordTextField。我有三个不同的标准:

  1. 至少 8 个字符
  2. 至少1个大小写字母
  3. 至少 1 位数

我已经有了这个功能,之后我需要它来一次检查所有三种情况:

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时分别检查不同的案例

我基本上需要在某种 whileEditing 方法中进行 3 种不同的正则表达式检查 我被困在这里...

有没有简单的方法来完成这个?

passwordTest.evaluate(with: password) returns 未知谓词命中的结果,因此您必须将它们分开以处理您需要的内容 e.x 可能有 8 个字符,但它们之间没有数字

使用UITextField EventListner 方法检查您的条件。您还可以在 NibsStoryboards,

中设置以下内容
textField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)