Password validation in UITextField in iOS

前端 未结 11 1103
有刺的猬
有刺的猬 2020-12-01 12:54

I have 1 UITextfield for password in my iPhone application.

I want to validate this textfield with the following validation.

  • Must be at le
11条回答
  •  庸人自扰
    2020-12-01 13:26

    Swift 3

    check if password is strong ?

    1. length more than or equal 8
    2. lowercase
    3. uppercase
    4. decimal Digits
    5. special characters like !@#$%^&*()_-+ is optional

      Why i not use regular expression ?

      Because it's difficult to support reserved characters in regular expression syntax.


     func isValidated(_ password: String) -> Bool {
         var lowerCaseLetter: Bool = false
         var upperCaseLetter: Bool = false
         var digit: Bool = false
         var specialCharacter: Bool = false
    
         if password.characters.count  >= 8 {
             for char in password.unicodeScalars {
                 if !lowerCaseLetter {
                     lowerCaseLetter = CharacterSet.lowercaseLetters.contains(char)
                 }
                 if !upperCaseLetter {
                     upperCaseLetter = CharacterSet.uppercaseLetters.contains(char)
                 }
                 if !digit {
                     digit = CharacterSet.decimalDigits.contains(char)
                 }
                 if !specialCharacter {
                     specialCharacter = CharacterSet.punctuationCharacters.contains(char)
                 }
             }
             if specialCharacter || (digit && lowerCaseLetter && upperCaseLetter) {
                 //do what u want
                 return true
             }
             else {
                 return false
             }
         }
         return false
     }
     let isVaildPass:Bool = isValidated("Test**00+-")
     print(isVaildPass)
    

提交回复
热议问题