[转] 一个简单的身份证验证
function validate(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;
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i]*factorArr[i];
}
}
if (intStrLen == 18) {
var date8 = idNumber.substring(6,14);
if (checkDate(date8) == false) {
return false;
}
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
intCheckDigit = 12 - lngProduct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
if (varArray[17].toUpperCase() != intCheckDigit) {
return false;
}
}
else{
var date6 = idNumber.substring(6,12);
if (checkDate(date6) == false) {
return false;
}
}
return true;
}
function checkDate(date)
{
return true;
}
{
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;
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i]*factorArr[i];
}
}
if (intStrLen == 18) {
var date8 = idNumber.substring(6,14);
if (checkDate(date8) == false) {
return false;
}
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
intCheckDigit = 12 - lngProduct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
if (varArray[17].toUpperCase() != intCheckDigit) {
return false;
}
}
else{
var date6 = idNumber.substring(6,12);
if (checkDate(date6) == false) {
return false;
}
}
return true;
}
function checkDate(date)
{
return true;
}