KZPeselValidator

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

Swift Version License Carthage compatible CocoaPods Compatible
Platform PRs Welcome

功能特点

验证详情

KZPeselValidator 同时使用两种方法验证 PESEL
方法一: (9×a + 7×b + 3×c + 1×d + 9×e + 7×f + 3×g + 1×h + 9×i + 7×j) % 10 == 校验位 (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 号码的后续数字。

要求

安装

CocoaPods

您可以使用 CocoaPods,通过将其添加到您的 Podfile 文件中来安装 KZPeselValidator

适用于 Swift 5.0

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

适用于 Swift 4.2

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

Carthage

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

github "konradzdunczyk/KZPeselValidator"

手动

  1. 下载并将 Source 文件夹拖放到您的项目中。
  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 文件以获取更多信息。

元数据

Konrad Zdunczyk – konrad.zdunczyk@gmail.com

根据 MIT 许可证分发。 有关更多信息,请参阅 LICENSE

https://github.com/konradzdunczyk/KZPeselValidator

归属

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