libchinaidcard
v1.1.0
Published
中国居民身份证解析库
Downloads
10
Maintainers
Readme
libchinaidcard
特点
- 只有一个文件
- 体积小
- API 简洁
安装
- 在你的npm项目目录下执行
npm install libchinaidcard
使用
说明
没有特殊说明,参数 idCard 的长度都应是 17
除了 isVaild 函数,所有函数都没有错误处理机制,请自行处理错误
参数 idCard 必须为 String, 传 number 会有精度问题
函数都有啥
- getCheckCode 获取校验码
- conv15to18 将 15 位身份证转为 18 位
参数为 15 位的身份证 - isVaild 测试身份证是否有效
可传入 15 位身份证或 18 位 身份证,但是不能传 17 位身份证 - getBirthYear 获取出生年
- getBirthMonth 获取出生月
- getBirthDay 获取出生日
- getBirthDate 获取出生年月日
返回类似于{year:0,month:0,day:0}
- getSex 获取性别
男的返回'm'
,女的返回'f'
- parseAreaData 解析行政区划
- getBirthplace 获取出生地
返回类似于{province:'',city:'',district:''}
- getDetails 获取详细的个人信息
返回类似于{ year: 0, month: 0, day: 0, sex: '', birthplace:'' }
个人吐槽
对比其它中国身份证解析类的 npm 库了,在我看来
我看不爽
然后就写了这个
生肖 星座 农历 那些真的有必要吗???
估计很多时候用不到
年龄也是, 自己获取日期然后算
道歉
之前没认真写,所以有的api很烂,在此道歉,bug已经修了
注意事项
为了避免不必要的麻烦,在执行其他函数之前,
请自行确认身份证没问题 (isVaild()
)xzqh
是 行政区划
的意思, 代码中我统称 areaData
了
部分代码可能读起来会有点吃力, 难受, 那就多读几遍
因为是适配 2020年版(在 2022 年为最新)的行政区划代码,所以换别的我没试过
发现这个版本中石河子市以及以下比较特殊,所以做了适配
别的地区有没有特殊暂时不知道
可能会问的问题
为什么不把 api 放在一个 IDCard 对象的 prototype 中?
为了减少不必要的麻烦
用于测试
手打的,除了测试没有别的意义
15 : 511702800222130
18 : 110101190001011009
相关链接
本库所用的行政区划代码库 https://www.mca.gov.cn/article/sj/xzqh/2020/20201201.html
行政区划代码列表 https://www.mca.gov.cn/article/sj/xzqh/
全国行政区划信息查询平台 http://xzqh.mca.gov.cn/map
身份证校验相关 https://juejin.cn/post/6925438445871431688