

//--身份证号码验证-支持新的带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; 
} 
function checkDate(date) 
{ 
return true; 
} 

