从身份证中提取个人信息
15位身份证号码各位的含义:
1-2位省、自治区、直辖市代码;
3-4位地级市、盟、自治州代码;
5-6位县、县级市、区代码;
7-8位为出生年(默认19xx年出生);
9-10位为出生月;
11-12位为出生日;
13-15位为顺序号,其中第15位男为单数,女为双数;
18位身份证号码各位的含义:
1-2位省、自治区、直辖市代码;
3-4位地级市、盟、自治州代码;
5-6位县、县级市、区代码;
7-10位为出生年(默认19xx年出生);
11-12位为出生月;
13-14位为出生日;
15-17位为顺序号,其中第17位男为单数,女为双数;
18位为校验位
以下为通过JS通过身份证获取个人信息的示例代码:
1 function getPersonInfoFromCardId(cardId){ 2 var personInfo = {}; 3 4 if (cardId.length==15 ){ 5 var year=cardId.substr(6,2); 6 var month=cardId.substr(8,2); 7 var day=cardId.substr(10,2); 8 personInfo.birth = '19'+year+'-'+month+'-'+day; 9 10 year = '19'+year; 11 var age=new Date().getFullYear()-year; 12 personInfo.age = age; 13 14 var sex=cardId.substr(11,3); 15 if (sex %2 == 0){ 16 personInfo.sex = '女'; 17 }else{ 18 personInfo.sex = '男'; 19 } 20 } 21 22 if (cardId.length==18 ){ 23 var year=cardId.substr(6,4); 24 var month=cardId.substr(10,2); 25 var day=cardId.substr(12,2); 26 personInfo.birth = year+'-'+month+'-'+day; 27 28 var age=new Date().getFullYear()-year; 29 personInfo.age = age; 30 31 var sex=cardId.substr(17,1); 32 if (sex %2 == 0){ 33 personInfo.sex = '女'; 34 }else{ 35 personInfo.sex = '男'; 36 } 37 } 38 39 return personInfo ; 40 }