一、下载安装
代码语言:javascript复制ohpm install @nutpi/idcard
OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包[2]
二、使用
代码语言:javascript复制import { parserChina, parserInternational } from '@nutpi/idcard/src/main/module/method';
代码示例:
代码语言:javascript复制parserChina('11010519491231002X')
返回:
代码语言:javascript复制 {
"type":"居民身份证",
"country":"中国",
"sign":"北京市朝阳区",
"birthday":"1949-12-31",
"sex":"女",
"isValid":false
}
代码示例:
代码语言:javascript复制parserInternational('932682198501010017')
返回
代码语言:javascript复制 {
"type":"外国人永久居留身份证",
"country":"沙特阿拉伯",
"sign":"江苏省",
"birthday":"1985-01-01",
"sex":"男",
"isValid":true
}
完整示例:
代码语言:javascript复制import { parserChina, parserInternational } from '@nutpi/idcard/src/main/module/method';
export class IdCardInfo {
type: string = ""
country: string = ""
sign: string = ""
birthday: string = ""
sex: string = ""
isValid: string = ""
}
@Entry
@Component
struct Index {
@State IdCardInfo: IdCardInfo = new IdCardInfo();
aboutToAppear(): void {
this.IdCardInfo = JSON.parse(JSON.stringify(parserChina('11010519491231002X')))
}
build() {
Column() {
Text(JSON.stringify(parserInternational('932682198501010017')))
.fontSize(20)
Text(this.IdCardInfo.type)
.fontSize(30)
Text(this.IdCardInfo.country)
.fontSize(30)
Text(this.IdCardInfo.sign)
.fontSize(30)
Text(this.IdCardInfo.birthday)
.fontSize(30)
Text(this.IdCardInfo.sex)
.fontSize(30)
}
.height('100%')
.width('100%')
}
}
三、背景
居民身份证是国家法定的证明公民个人身份的证件。根据〖中华人民共和国国家标准 GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由 17 位数字本体码和 1 位校验码组成。排列顺序从左至右依次为:6 位数字地址码,8 位数字出生日期码,3 位数字顺序码和 1 位数字校验码。
第 1-6 位为地址码,表示编码对象常住户口所在县(市、镇、区)的行政区划代码。
第 7-14 位为出生日期码,表示编码对象出生的年、月、日,按 GB/T7408 的规定执行,年、月、日代码之间不用分隔符。
第 15-17 位为顺序码,是同一地址码所标示的区域范围内,对同年同月同日生的居民编订的顺序码。其中第 15、16 位是县、区级政府所辖派出所的分配码,每个派出所分配码为 10 个连续号码。第 17 位表示性别,男性为单数,女性为双数,如遇同年同月同日有两人以上时顺延第 2、第 3、第 4、第 5 个分配码;
第 18 位为校验码,根据前面 17 位数字码,按照 ISO 7064:1983.MOD 11-2 校验码计算出来。
通过身份证号码可以查询身份证发证地,出生日期,性别,有效性等信息,身份证 15 位自动转 18 位升位转换。第一代身份证为单页卡式,15 位编码,从 1984 年起开始启用,至 2013 年 1 月 1 日已停用。2004 年 1 月 1 日,第二代居民身份证开始换发 18 位身份证,身份证件正面有签发机关和有效期限,印有国徽图案、证件名称、写意长城图案及彩色花纹;证件背面设计有姓名、性别、民族、出生日期、常住户口所在地住址、公民身份号码和本人相片 7 个登记项目。
四、功能支持
- 居民身份证
- 港澳台居住证
- 外国人永久居留身份证
五、开源协议
本项目基于 MIT[3] ,请自由地享受和参与开源。感谢mumuy[4]。和坚果派的小伙伴做出的努力。
六、运行环境
DevEco Studio NEXT Developer Beta1 Build Version: 5.0.3.401,
适用于 API:12 及以上,在真机 Mate60 测试 ok。
参考资料
[1]
坚果: https://blog.csdn.net/qq_39132095
[2]
如何安装 OpenHarmony ohpm 包: https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_har_usage.md
[3]
MIT: LICENSE
[4]
mumuy: https://github.com/mumuy/idcard