【问题标题】:How to Validate International Passport number in swift [duplicate]如何快速验证国际护照号码[重复]
【发布时间】:2019-12-20 06:32:25
【问题描述】:

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

【问题讨论】:

标签: ios swift validation


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    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 位数字组成 数字和字母。

    编码愉快...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-14
      • 2013-04-14
      • 2015-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      相关资源
      最近更新 更多