Ext实现的身份证格式验证代码

var certCardValid = function(id){ 
  var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2]; 
  var wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]; 
  var Checker = [1,9,8,7,6,5,4,3,2,1,1]; 
  var msg = ""; 
  if(id.length != 15 && id.length != 18) 
  { 
    Ext.MessageBox.alert("信息提示","身份证号共有15位或18位。"); 
    return false; 
  } 
  var ai = id.length == 18 ?  id.substring(0,17) : id.slice(0,6) + "19" + id.slice(6,16); 
  if (!/^\/d+$/.test(ai)) 
  { 
    Ext.MessageBox.alert("信息提示","身份证除最后一位外,必须为数字。"); 
    return false; 
  } 
  var yyyy = ai.slice(6,10); 
  var mm = ai.slice(10,12)-1;  
  var dd = ai.slice(12,14); 
  var d = new Date(yyyy,mm,dd); 
  var now = new Date(); 
  var year = d.getFullYear(); 
  var mon = d.getMonth();  
  var day = d.getDate(); 
  
  if (year != yyyy || mon != mm || day != dd) 
  { 
    Ext.MessageBox.alert("信息提示","身份证无效。"); 
    return false; 
  } 
  for(var i = 0,ret = 0; i < 17; i++)
  { 
    ret += ai.charAt(i) * wi[i]; 
  } 
  ai += arrVerifyCode[ret %= 11]; 
  ai = ai.toUpperCase(); 
  if(id.length == 18 && id != ai)
  { 
    Ext.MessageBox.alert("信息提示","身份证无效。"); 
    return false; 
  } 
  return true; 
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值