​js15位身份证号码转18位

helei 2020-8-25 1,075 8/25

从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 -

helei

8月25日15:26

最后修改:2020年8月25日
0

非特殊说明,本博所有文章均为博主原创。