普贤教程 › 包参考
idcard 包
身份证校验(GB 11643-1999)
| 项 | 值 |
|---|---|
| 包名 | idcard |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | idcard.px |
| 分类 | 认证与安全 |
| 文件数 / 行数 | 1 / 202 |
安装与引入
bash
pxpkg init # 首次 pxpkg add idcard@0.2.0 pxpkg install
px
import idcard所属分类教程:认证与安全
公开接口
| 函数 | 参数 |
|---|---|
idcard_validate | id |
idcard_upgrade15to18 | id15 |
其余 9 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
idc_leap | y |
idc_valid_date | s |
idc_expand_year | yy |
idc_checksum | id17 |
idc_province_name | code6 |
idc_city_name | code6 |
idc_all_digits | s |
idc_validate18 | t |
idc_validate15 | t |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/idcard —— 身份证校验(GB 11643-1999) ------------------------------------------------------------ 纯函数库(无 IO、无状态),编译(px build)与解释(px run)双模式一致。 idcard_validate(id) → Ok({province, province_name, city_name, birth, gender, type}) | Err(msg) idcard_upgrade15to18(id15) → Ok(id18) | Err(msg) 规则(18 位): 6 位地区码(首位非 0) + 8 位生日(YYYYMMDD,闰年校验) + 3 位顺序码(第 17 位奇男偶女) + 1 位校验码 校验码加权因子 [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] 模 11 映射 10X98765432 规则(15 位旧号,1999-10-01 前签发): 6 位地区码 + 6 位生日(YYMMDD,两位年) + 3 位顺序码(末位奇男偶女) 无校验位;两位年 00-29 → 2000-2029,30-99 → 1930-1999 新增:15 位旧号支持、地区码枚举表(34 省级 + 主要城市)、15→18 升级 ============================================================