从身份证中提取个人信息

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 }

 

posted @ 2015-01-05 10:15  烂不了的木头  阅读(894)  评论(0编辑  收藏  举报