-4

I am new in swift and I need to validate International passport. Is there is any way to validate it.

Muju
  • 884
  • 20
  • 54
  • 1
    you 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
  • 1
    Does 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 Answers2

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