js获取身份证信息(输入前十七位计算第十八位)
身份证号码是由18位数字组成的,他们分别表示:
- 前1、2位数字表示:所在省份的代码;
- 前3、4位数字表示:所在城市的代码;
- 前5、6位数字表示:所在区县的代码;
- 第7~14位数字表示:出生年、月、日;
- 第15、16位数字表示:所在地的派出所的代码;
- 第17位数字表示性别:奇数表示男性,偶数表示女性;
- 第18位数字是校验码:校验码可以是数字0-9,10用X表示。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
while (true){
var sfz=prompt("请输入身份证前17位:");
if (sfz.length!=17){
alert("请按要求输入,你当前输入了"+sfz.length+"位");
}else{
//截取身份证号码的前十七位
var sfz_1=Number(sfz.substring(0,1));
var sfz_2=Number(sfz.substring(1,2));
var sfz_3=Number(sfz.substring(2,3));
var sfz_4=Number(sfz.substring(3,4));
var sfz_5=Number(sfz.substring(4,5));
var sfz_6=Number(sfz.substring(5,6));
var sfz_7=Number(sfz.substring(6,7));
var sfz_8=Number(sfz.substring(7,8));
var sfz_9=Number(sfz.substring(8,9));
var sfz_10=Number(sfz.substring(9,10));
var sfz_11=Number(sfz.substring(10,11));
var sfz_12=Number(sfz.substring(11,12));
var sfz_13=Number(sfz.substring(12,13));
var sfz_14=Number(sfz.substring(13,14));
var sfz_15=Number(sfz.substring(14,15));
var sfz_16=Number(sfz.substring(15,16));
var sfz_17=Number(sfz.substring(16,17));
var sfz_18,jisuan
jisuan=(sfz_1*7+sfz_2*9+sfz_3*10+sfz_4*5+sfz_5*8+sfz_6*4+sfz_7*2+sfz_8*1+sfz_9*6+sfz_10*3+sfz_11*7+sfz_12*9+sfz_13*10+sfz_14*5+sfz_15*8+sfz_16*4+sfz_17*2)%11
document.write("如果输出有误,请检查您前十七位输入是否正确!")
document.write("<p>")
if (jisuan==0){
alert("你身份证号码最后的一位是:1");
sfz_18=1;
document.write("你身份证号码最后的一位是:1");
}
else if (jisuan==1){
alert("你身份证号码最后的一位是:0");
sfz_18=0;
document.write("你身份证号码最后的一位是:0");
}
else if (jisuan==2){
alert("你身份证号码最后的一位是:X");
sfz_18="X";
document.write("你身份证号码最后的一位是:X");
}
else if (jisuan==3){
alert("你身份证号码最后的一位是:9");
sfz_18=9;
document.write("你身份证号码最后的一位是:9");
}
else if (jisuan==4){
alert("你身份证号码最后的一位是:8");
sfz_18=8;
document.write("你身份证号码最后的一位是:8");
}
else if (jisuan==5){
alert("你身份证号码最后的一位是:7");
sfz_18=7;
document.write("你身份证号码最后的一位是:7");
}
else if (jisuan==6){
alert("你身份证号码最后的一位是:6");
sfz_18=6;
document.write("你身份证号码最后的一位是:6");
}
else if (jisuan==7){
alert("你身份证号码最后的一位是:5");
sfz_18=5;
document.write("你身份证号码最后的一位是:5");
}
else if (jisuan==8){
alert("你身份证号码最后的一位是:4");
sfz_18=4;
document.write("你身份证号码最后的一位是:4");
}
else if (jisuan==9){
alert("你身份证号码最后的一位是:3");
sfz_18=3;
document.write("你身份证号码最后的一位是:3");
}
else{
alert("你身份证号码最后的一位是:2");
sfz_18=2;
document.write("你身份证号码最后的一位是:2");
}
document.write("<p>")
var all=""+sfz_1+sfz_2+sfz_3+sfz_4+sfz_5+sfz_6+sfz_7+sfz_8+sfz_9+sfz_10+sfz_11+sfz_12+sfz_13+sfz_14+sfz_15+sfz_16+sfz_17+sfz_18
document.write("你完整的身份证号码是:"+all)
document.write("<p>")
//根据身份证号第十七位计算性别,偶数为女,奇数为男
if (sfz_17%2==0){
document.write("你的性别为:女")
}
else{
document.write("你的性别为:男")
}
document.write("<p>");
//计算年龄
var data=new Date() //获取当前年份,当前年份减去出生年份
var age=data.getFullYear()-(sfz_7*1000+sfz_8*100+sfz_9*10+sfz_10);
document.write("你的年龄为:"+age);
document.write("<p>");
// 身份证前两位得出籍贯
sfz_1_2=sfz_1*10+sfz_2;
var huabei={
11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙"}
for (var ii=11;ii<=15;ii++){
if (sfz_1_2==ii){
suyi_1 = huabei[ii]
document.write("您的籍贯为:",suyi_1)
}
}
var dongbei={
21:"辽宁",22:"吉林",23:"黑龙江"}
for (var jj=21;jj<=15;jj++){
if (sfz_1_2==jj){
suyi_2 = dongbei[jj]
document.write("您的籍贯为:",suyi_2)
}
}
var huadong={
31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东"}
for (var kk=31;kk<=37;kk++){
if (sfz_1_2==kk){
suyi_3 = huadong[kk]
document.write("您的籍贯为:",suyi_3)
}
}
var zhongnan={
41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南"}
for (var yy=41;yy<=46;yy++){
if (sfz_1_2==yy){
suyi_4 = zhongnan[yy]
document.write("您的籍贯为:",suyi_4)
}
}
var xinan={
50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏"}
for (var uu=50;uu<=54;uu++){
if (sfz_1_2==uu){
suyi_5 = xinan[uu]
document.write("您的籍贯为:",suyi_5)
}
}
var xibei={
61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆"}
for (var zz=61;zz<=65;zz++){
if (sfz_1_2==zz){
suyi_6 = xibei[zz]
document.write("您的籍贯为:",suyi_6)
}
}
break;//输入正确,则退出循环
}
}
</script>
</body>
</html>