I am new in swift and I need to validate International passport. Is there is any way to validate it.
            Asked
            
        
        
            Active
            
        
            Viewed 3,483 times
        
    -4
            
            
        - 
                    1you wrote regular expression and it is the same for all programming languages. If you want to know how use it in swift - read, for example, [here](https://www.hackingwithswift.com/articles/108/how-to-use-regular-expressions-in-swift) – Vadim Nikolaev Dec 20 '19 at 06:40
- 
                    1Does this answer your question? [Regex for Passport Number](https://stackoverflow.com/questions/40647728/regex-for-passport-number) and [How to use regex in swift.](https://stackoverflow.com/questions/27880650/swift-extract-regex-matches) – dahiya_boy Dec 20 '19 at 07:08
2 Answers
1
            
            
        try use NSPredicate:
  func isValidPassport(passportStr:String) -> Bool {        
    let passportRegEx = "^(?!^0+$)[a-zA-Z0-9]{3,20}$"
    let passportPred = NSPredicate(format:"SELF MATCHES %@", passportRegEx)
    return passportPred.evaluate(with: passportStr)
  }
Swift earlier than 3.0:
func isValidPassport(passportStr:String) -> Bool {
    let passportRegEx = "^(?!^0+$)[a-zA-Z0-9]{3,20}$"
    let passportPred = NSPredicate(format:"SELF MATCHES %@", passportRegEx)
    return passportPred.evaluate(with: passportStr)
}
Swift earlier than 1.2:
class func isValidPassport(passportStr:String) -> Bool {
    let passportRegEx = "^(?!^0+$)[a-zA-Z0-9]{3,20}$"
    if let passportPred = NSPredicate(format:"SELF MATCHES %@", passportRegEx) {
        return passportPred.evaluateWithObject(passportStr)
    }
    return false
}
 
    
    
        Vasucd
        
- 357
- 2
- 10
0
            
            
        It's very simple. You can check like below
extension String {
    func isValidPassport() -> Bool {
        let PASSPORT_REG_EX = "^(?!^0+$)[a-zA-Z0-9]{3,20}$"
        let passport = NSPredicate(format:"SELF MATCHES %@", PASSPORT_REG_EX)
        if (self.count >= 6) {
            return passport.evaluate(with: self)
        } else {
            return false
        }
    }
}
Take a String Extension and reuse rest of your App
    let passport = "AS345501"
    passport.isValidPassport()
Note: How to validate a passport?
UK passport numbers consist of 9 digits but used to consist of 6 digits and a letter.
Happy coding...
 
    
    
        Sailendra
        
- 1,318
- 14
- 29
