KZPeselValidator 1.0

KZPeselValidator 1.0

Konrad Zdunczyk 维护。



  • 作者:
  • Konrad Zdunczyk

KZPeselValidator

波兰国家身份证号码 PESEL 验证器

Swift Version License Carthage compatible CocoaPods Compatible
Platform PRs Welcome

功能特点

  • 验证 PESEL 号码
  • 获取 PESEL 所有者的性别
  • 获取 PESEL 所有者的出生日期

验证细节

KZPeselValidator 同时使用两种方法来验证 PESEL
方法一:(9×a + 7×b + 3×c + 1×d + 9×e + 7×f + 3×g + 1×h + 9×i + 7×j) % 10 == check number (PESEL 的最后一位数字)
方法二:(1×a + 3×b + 7×c + 9×d + 1×e + 3×f + 7×g + 9×h + 1×i + 3×j + 1×k) % 10 == 0

字母 'a' 到 'k' 是 PESEL 号码的后续数字。

要求

  • iOS 8.0+
  • Xcode 9.0+
  • Swift 3.3+

安装

CocoaPods

您可以通过将 KZPeselValidator 添加到您的 Podfile 文件来使用 CocoaPods 进行安装。

platform :ios, '8.0'
use_frameworks!
pod 'KZPeselValidator'

Carthage

创建一个包含框架的 Cartfile 文件并运行 carthage update 命令。按照 说明,将 $(SRCROOT)/Carthage/Build/iOS/KZPeselValidator.framework 添加到 iOS 项目中。

github "konradzdunczyk/KZPeselValidator"

手动安装

  1. 下载源文件夹并将其拖放到您的项目中。
  2. 恭喜您!

使用示例

仅验证

import KZPeselValidator

let peselValidator = KZPeselValidator()
let peselValidationResult = peselValidator.validate(peselNumber: "76040117112")

switch peselValidationResult {
case .valid(let peselNumber):
    print("Pesel \(peselNumber) is valid")
case .invalid(let peselNumber):
    print("Pesel \(peselNumber) is invalid")
}

带解析的验证

import KZPeselValidator

let peselParser = KZPeselParser()
let parseResult = peselParser.parse(peselNumber: "76040117112")

switch parseResult {
case .success(let peselInfo):
    var birthDateComponents = peselInfo.birthDateComponents

    // date from birthDateComponents without calendar is invalid!
    birthDateComponents.calendar = Calendar.current

    print("Pesel \(peselInfo.pesel) is valid")
    print("Birthdate: \(birthDateComponents.date!)")
    print("Sex: ", terminator: "")

    switch peselInfo.sex {
    case .male:
        print("male")
    case .female:
        print("female")
    }
case .peselInvalid(let peselNumber):
    print("Pesel \(peselNumber) is invalid")
}

贡献

我非常欢迎您为 KZPeselValidator 做出贡献,详细信息请查看 LICENSE 文件。

康拉德·赞茨齐克 – [email protected]

在MIT许可下分发。有关更多信息,请参阅LICENSE

https://github.com/konradzdunczyk/KZPeselValidator

归属

我使用了SwiftPlate来生成与CocoaPods和Carthage兼容的xcodeproj。