- 论坛徽章:
- 0
|
- //--身份证号码验证-支持新的带x身份证
-
function isIdCardNo(num) {
-
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
-
var error;
-
var varArray = new Array();
-
var intValue;
-
var lngProduct = 0;
-
var intCheckDigit;
-
var intStrLen = num.length;
-
var idNumber = num;
-
// initialize
-
if ((intStrLen != 15) && (intStrLen != 18)) {
-
//error = "输入身份证号码长度不对!";
-
//alert(error);
-
//frmAddUser.txtIDCard.focus();
-
return false;
-
}
-
// check and set value
-
for(i=0;i<intStrLen;i++) {
-
varArray[i] = idNumber.charAt(i);
-
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
-
//error = "错误的身份证号码!.";
-
//alert(error);
-
//frmAddUser.txtIDCard.focus();
-
return false;
-
} else if (i < 17) {
-
varArray[i] = varArray[i]*factorArr[i];
-
}
-
}
-
if (intStrLen == 18) {
-
//check date
-
var date8 = idNumber.substring(6,14);
-
if (checkDate(date8) == false) {
-
//error = "身份证中日期信息不正确!.";
-
//alert(error);
-
return false;
-
}
-
// calculate the sum of the products
-
for(i=0;i<17;i++) {
-
lngProduct = lngProduct + varArray[i];
-
}
-
// calculate the check digit
-
intCheckDigit = 12 - lngProduct % 11;
-
switch (intCheckDigit) {
-
case 10:
-
intCheckDigit = 'X';
-
break;
-
case 11:
-
intCheckDigit = 0;
-
break;
-
case 12:
-
intCheckDigit = 1;
-
break;
-
}
-
// check last digit
-
if (varArray[17].toUpperCase() != intCheckDigit) {
-
//error = "身份证效验位错误!正确为: " + intCheckDigit + ".";
-
//alert(error);
-
return false;
-
}
-
}
-
else{ //length is 15
-
//check date
-
var date6 = idNumber.substring(6,12);
-
if (checkDate(date6) == false) {
-
//alert("身份证日期信息有误!.");
-
return false;
-
}
-
}
-
//alert ("Correct.");
-
return true;
-
}
|
|