|
function issfzok(s,usersex,UserBirthday_y,UserBirthday_m)
{
var aCity="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,71,81,82,91,"
var iSum=0
var info=""
var sId=""
var sidsex=""
if (s.length==15) sId=s.substr(0,6)+"19"+s.substr(6,9)+"0";
else if (s.length==18) sId=s;
else return "身份证位数不对";
if (s.length==15) sidsex=s.substring(14,15);
else if (s.length==18) sidsex=s.substring(16,17);
else return "身份证位数不对";
sidsex=sidsex % 2 ==0 ? "2" : "1";
if (sidsex!=usersex)
return "身份证与性别不匹配";
xb=Number(sId.substr(16,1))%2
if(!/^\d{17}(\d|x)$/i.test(sId)) return "身份证中有非法字符";
sId=sId.replace(/x$/i,"a");
if(aCity.indexOf(sId.substr(0,2))==-1)return "身份证错误:非法地区";
if(sId.substr(6,4)!=UserBirthday_y | Number(sId.substr(10,2))!=Number(UserBirthday_m)) return "身份证错误:非法生日";
//sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
//var d=new Date(sBirthday.replace(/-/g,"/"))
//if(sBirthday!=UserBirthday) return "身份证错误:非法生日";
if (s.length==18)
{
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1) return "身份证错误:校验错误";
}
return "";
} |
|