如何快速验证国际护照号码

时间:2019-12-20 06:32:25

标签: ios swift validation

我是新手,需要验证国际护照。有什么办法可以验证它。

2 个答案:

答案 0 :(得分:0)

尝试使用 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早于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)
}

早于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
}

答案 1 :(得分:0)

这很简单。您可以像下面这样检查

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
        }
    }
}

使用String Extension并重复使用其余的应用程序

    let passport = "AS345501"
    passport.isValidPassport()

注意:How to validate a passport?

  

英国护照号码由9位数字组成,但过去通常由6位数字组成   数字和字母。

快乐的编码...