从1999年10月1日起,全国实行公民身份证号码制度,居民身份证编号由原15位升至18位。前6位为地址码;第七位至14位为出生日期码,此码由6位数改为8位数,其中年份用4位数表示;第15位至17位为顺序码,取消了顺序码中对百岁老人使用的特定编号;第十八位为校验码,主要是为了校验计算机输入公民身份证号码的前17位数字是否正确,其取值范围是0至10,当值等于10时,用罗马数字符χ表示
/*
* 15位身份证转18位
* @param cardNum 15位身份证号码
* @param year 出生年份前两位,默认19
*/
function getIdcard(cardNum,year = "19"){
var a = cardNum.replace(cardNum.substring(6,12),year+cardNum.substring(6,12))
var b = "7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2".split('-')
var num = 0
for(var i =0;i<a.length;i++){
num += a[i]*b[i]
}
var res = num%11
switch(res)
{
case 0:
a = a+"1"
break;
case 1:
a = a+"0"
break;
case 2:
a = a+"X"
break;
case 3:
a = a+"9"
break;
case 4:
a = a+"8"
break;
case 5:
a = a+"7"
break;
case 6:
a = a+"6"
break;
case 7:
a = a+"5"
break;
case 8:
a = a+"4"
break;
case 9:
a = a+"3"
break;
case 10:
a = a+"2"
break;
}
return a;
}
- THE END -
最后修改:2020年8月25日
非特殊说明,本博所有文章均为博主原创。