js 方法-判断身份证号是否正确
var is_IdCard = function(idCard,reg){
var reg = reg ? reg : regConfig.idCard ;
//验证格式是否正确
if(!reg.test(idCard)){
console.log('身份证格式不正确');
return false;
}
//验证1-2位地址城市是否合法
if(!vcity[idCard.substr(0,2)]){
console.log('地址编码错误');
return false;
}
//验证7-14出生日期是否合法
var birthday = idCard.substr(6,4)+"/"+parseInt(idCard.substr(10,2))+"/"+parseInt(idCard.substr(12,2));
var birDate = new Date(birthday);
if(birthday != (birDate.getFullYear()+"/"+(parseInt(birDate.getMonth())+1)+"/"+birDate.getDate())){
return false;
}
//验证最后校验位
var sum = 0;
for(var i=17 ; i>=0 ; i--){
sum += (Math.pow(2,i)%11)*parseInt(idCard.replace(/x$/i,'a').charAt(17-i),11);
}
if(sum%11 != 1){
console.log('你输入的身份证号非法');
return false;
}
//解析身份证后可以得到 出生地,出生日期,性别
var _birCity = vcity[idCard.substr(0,2)];
var _birDate = birthday;
var _sex = idCard.substr(16,1)%2 ?'男':'女';
return true;
}