SwedishPNR

解析和验证瑞典个人身份号码,瑞典语称为“personnummer”,本库中简称为 PNR。

号码里有什么?

瑞典税务局(瑞典语为“Skatteverket”)提供了一份格式描述,但基本上可以归结为以下几点:

其他奇闻异事

开始使用

要使用此库,请在你的 Package.swift 中声明依赖项

// 🇸🇪 Swedish personal identity number validation
.package(url: "https://github.com/Oops-AB/swedish-pnr.git", from: "1.0.0"),

并添加到你的目标

.executableTarget(name: "Smorgasbord", dependencies: [
    .product(name: "SwedishPNR", package: "swedish-pnr")
],

让我们开始吧

let pnr = try! SwedishPNR.parse(input: "  20171210-0005\t")
print("\(pnr.normalized)")

输出

20171210-0005

parse() 函数要么返回 PNR,要么抛出 Parser.ParseError

SwedishPNR 类型

成功的解析返回一个 SwedishPNR。 此类型有一些属性

SwedishPNR 还有一个方法 age(at:) -> Int,用于计算相对于参考日期的年龄(默认为现在)。

请注意,所有日期计算(年龄和推断世纪)都在瑞典时区执行。

脚注

  1. 可能只有更少的出生号码可用,因为某些号码可能被保留或排除。 我没有找到明确的列表。 Skatteverket 可能知道。