[javaScript]身份证号信息解析

之前一直在思考是不是该把工作中一些问题写出来(可能是简单的问题),现在的想法是应该写出来这些简单的问题。虽然工作中可能并没有很多特别难的问题让你去解决,因为公司的招人就是根据你的能力来匹配的嘛。
简单的问题大部分都能从网上找到,比如数字校验的正则表达式、邮箱的校验、网址匹配的正则表达式等等。有时候我们遇到的问题并不是正好跟网上已有的完全一致,比如根据身份证显示出性别、出生年月、年龄的功能有不少,但是根据身份证带出籍贯的功能就不容易找到了。所以简单的问题写成博客也是有一定意义的。


籍贯的对应表:

身份证前两位省份序号
11北京市01
12天津市02
13河北省03
14山西04
15内蒙古05
21辽宁省06
22吉林省07
23黑龙江省08
31上海市09
32江苏省10
33浙江省11
34安徽省12
35福建省13
36江西省14
37山东省15
41河南省16
42湖北省17
43湖南省18
44广东省19
45广西壮族自治区20
46海南省21
50重庆市22
51四川省23
52贵州省24
53云南省25
54西藏自治区26
61陕西省27
62甘肃省28
63青海省29
64宁夏回族自治区30
65新疆维吾尔族自治区31

省份后面对应的序号是固定的,所以这个问题相当于把身份证号前两位转为后面的序号。实际上就是一个简单的排序问题。


 function getLocation(){
                          //定义数组
                          var locations=new Array(11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65); 
                          //取得身份证号前两位
              tempLocation=iIdNo.substring(0,2);  
                          //设置是否匹配的flag
              var idFlag=false; 
              var result;
              for(var i=0;i<locations.length;i++){
                  if(tempLocation==locations[i]){ 
                                          //设置flag为true表示找到了符合的号码
                      idFlag=true;  
                      if(i<9){
                          i="0"+(i+1);
                      }else{
                          i=(i+1);
                      }
                      result=i;
              }
              } 
              if(!idFlag){
              alert("输入的身份证号码有误!");
              return false;
              }else return result;
              }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值