KZPeselValidator
波兰国家身份证号码 PESEL 验证器
功能特点
- 验证 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"
手动安装
- 下载源文件夹并将其拖放到您的项目中。
- 恭喜您!
使用示例
仅验证
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。