Check if a string contains at least a upperCase letter, a digit, or a special character in Swift?

后端 未结 4 1660
心在旅途
心在旅途 2021-01-31 05:18

I am trying to create a method that finds whether a string contains a number , Upper case letter and a special character using regular expression as below

 func         


        
4条回答
  •  感情败类
    2021-01-31 05:38

    Here is a concise version of Joshuas answer in Swift 3, assuming that all validations must be fulfilled.

    func validate(password: String) -> Bool {
        let capitalLetterRegEx  = ".*[A-Z]+.*"
        let texttest = NSPredicate(format:"SELF MATCHES %@", capitalLetterRegEx)
        guard texttest.evaluate(with: password) else { return false }
    
        let numberRegEx  = ".*[0-9]+.*"
        let texttest1 = NSPredicate(format:"SELF MATCHES %@", numberRegEx)
        guard texttest1.evaluate(with: password) else { return false }
    
        let specialCharacterRegEx  = ".*[!&^%$#@()/_*+-]+.*"
        let texttest2 = NSPredicate(format:"SELF MATCHES %@", specialCharacterRegEx)
        guard texttest2.evaluate(with: password) else { return false }
    
        return true
    }
    

提交回复
热议问题