首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PPS号码验证iOS Swift

PPS号码验证iOS Swift
EN

Stack Overflow用户
提问于 2021-04-15 21:40:54
回答 1查看 34关注 0票数 0

主要用于爱尔兰的PPS号码。它的验证包含更多的calculation。我们怎样才能用swift代码验证PPS号码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-15 21:40:54

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

代码语言:javascript
复制
  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 number,其返回的布尔值number是否有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67109607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档