【问题标题】:PPS Number Validation iOS SwiftPPS 号码验证 iOS Swift
【发布时间】:2021-04-15 13:40:53
【问题描述】:

PPS 号码主要用于爱尔兰。它的验证包含更多calculation。我们如何在 swift 代码中验证 PPS 编号?

【问题讨论】:

    标签: swift validation numbers pps


    【解决方案1】:

    以下代码用于在 iOS Swift 中验证 PPS 编号

      func isValidPPSN(_ ppsn: String) -> Bool {
        let ppsnRegEx = "^([0-9]{7})([A-Z]{1,2})$"
        let ppsnPred = NSPredicate(format:"SELF MATCHES %@", ppsnRegEx)
        return ppsnPred.evaluate(with: ppsn)
      }
      
      func validatePPSN(objInputValue: String) -> Bool {
        
        if !(isValidPPSN(objInputValue)) {
          return false
        }
        else {
          let numericPart = objInputValue[0 ..< 7]
          let checksumCharacter = objInputValue[numericPart.count ..< objInputValue.count]
          
          var multiplyingFactor = 8
          var sum = 0
          
          for i in numericPart {
            sum += (Int(String(i)) ?? 0) * multiplyingFactor
            multiplyingFactor -= 1
          }
          
          if checksumCharacter.count == 2 {
            sum += (Int(Character(checksumCharacter[1].uppercased()).asciiValue ?? 0) - 64) * 9
          }else{
            return false
          }
          
          let checksum = sum % 23;
          let asciiValue = Character(checksumCharacter[0].uppercased()).asciiValue ?? 0
          if ((checksum + 64) == asciiValue || (checksum == 0 && asciiValue == 87)) {
            return true
          } else {
            return false
          }
        }
      }
      
    

    调用函数validatePPSN(objInputValue: String)在参数中传递PPS编号,其返回bool值编号是否有效。

    【讨论】:

      猜你喜欢
      • 2013-12-21
      • 2020-01-07
      • 2012-10-21
      • 1970-01-01
      • 2020-01-28
      • 2016-12-20
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多