怎么获得身份证号的信息

7,219 阅读2分钟

最近,在做一个小需求,将身份证号,转化为具体的信息,籍贯、出生日期、性别。功能简单,存放备用。

随手写了个get-id-card-info 插件,没有任何依赖。

想玩的话,支持命令行和函数引用:

npm i get-id-card-info -g
get-id-card-info 你的身份证号

如果项目想用的话,先安装

npm i get-id-card-info

使用

const getIdCardInfo = require("get-id-card-info");
const info = getIdCardInfo("11204416541220243x");

/**
{
  idCard: '11204416541220243x',
  addr: { province: '北京市', city: '', county: '' },
  addrCode: '112044',
  age: 367,
  gender: '男',
  birthday: '1654-12-20'
}
 */

18 位身份证的含义

  1. 第 1 一 6 位数为行政区划代码;
  2. 第 7—14 位数为出生日期代码;
  3. 第 14---17 位数为分配顺序代码;
  4. 校验码;校验码是由身份证号码编制单位按统一的公式计算出来的,如果某人的尾号是 0-9,都不会出现 Ⅹ,但如果尾号是 10,那么就得用 Ⅹ 来代替。因为如果用 10 做尾号,那么此人的身份证就变成了 19 位。其中 17 位男为单数,女为双数

15 位身份证号码各位的含义

  1. 第 l 一 6 位数为行政区划代码;
  2. 第 7—12 位数为出生日期代码;
  3. 第 13---15 位数为分配顺序代码;其中 15 位男为单数,女为双数

原理

其实没啥,就根据上面的,计算就好。

发包的细节

  • 本地可以yarn link,测试包
  • 想让包可以用命令行使用,在package.json那边加上"bin": { "get-id-card-info": "./bin/index.js" },
  • 想上传包的时候忽略文件.npmignore
  • 发包的顺序:npm adduser;验证码;npm publish,注意之前注册的邮箱会收到验证码
  • 发包失败,一看包名官网是否已经存在,二看版本是不是没更新

引用