注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发JavaScript → 文章内容

用于身份证检查函数

作者:佚名 来源:本站整理 发布时间:2008-3-11 20:02:25

//身份证检查函数
function validateCardNo(certid)
...{  
    var reg_15 = /\d...{15}/;
    var reg_18 = /\d...{17}([0-9]{1}|x|X)/;
    var monthPerDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
    certid = certid.toLowerCase();
    if(certid == "")
    ...{
  return false;
    }

    var ret = certid.length == 15?reg_15.test(certid):reg_18.test(certid);
    if(!ret)
    ...{
  return false;
    }

    birthDate = certid.length == 15?"19" + certid.substr(6,6):certid.substr(6,8);
    year = birthDate.substr(0,4);
    if(birthDate.substr(4,1) == '0')
  month = birthDate.substr(5,1);
    else
  month = birthDate.substr(4,2);
    if(birthDate.substr(6,1) == '0')
  day = birthDate.substr(7,1);
    else
  day = birthDate.substr(6,2);
    dd = parseInt(day);
    mm = parseInt(month);
    yy = parseInt(year);
    days = new Date();
    gdate = days.getDate();
    gmonth = days.getMonth();
    gyear18 = days.getFullYear()-18;
    if(mm>12 || mm<1 ||dd>31 || dd<1)
    ...{
  return false;
    }

    if(year % 100 != 0)
    ...{
  if(year % 4 ==0)
  monthPerDays[1] = 29;
    }

    else
    ...{
  if(year % 400 == 0)
  monthPerDays[1] = 29;
    }

    if(monthPerDays[mm - 1] < dd)
    ...{
  return false;
    }

    if(certid.length == 18)
    ...{
  var arTemp = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
  var num = 0;
  var proof;
  for(var i=0; i < 17; i ++)
  ...{
      num = num + certid.substr(i,1) * arTemp[i];
  }

  num = num % 11;
  switch(num)
  ...{
      case 0:proof='1';break;
      case 1:proof='0';break;
      case 2:proof='x';break;
      case 3:proof='9';break;
      case 4:proof='8';break;
      case 5:proof='7';break;
      case 6:proof='6';break;
      case 7:proof='5';break;
      case 8:proof='4';break;
      case 9:proof='3';break;
      case 10:proof='2';break;
  }

  if(certid.substr(17, 1) != proof)
  ...{
      return false;
  }

    }

    mm = mm -1;
    var prevTS18 = new Date(gyear18, gmonth, gdate,0,0,0);
    var ageTs = new Date(yy,mm,dd,0,0,0)

    return true;
}
  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved