//身份证检查函数
function validateCardNo(certid) 
{
var reg_15 = /\d{15}/;
var reg_18 = /\d{17}([0-9]{1}|x|X)/;
var monthPerDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
certid = certid.toLowerCase();
if(certid == "") 
{
return
false;
}
var ret = certid.length == 15?reg_15.test(certid):reg_18.test(certid);
if(!ret) 
{
return
false;
}
birthDate = certid.length == 15?"19" + certid.substr(6,6):certid.substr(6,8);
year = birthDate.substr(0,4);
if(birthDate.substr(4,1) == '0')
month = birthDate.substr(5,1);
else
month = birthDate.substr(4,2);
if(birthDate.substr(6,1) == '0')
day = birthDate.substr(7,1);
else
day = birthDate.substr(6,2);
dd = parseInt(day);
mm = parseInt(month);
yy = parseInt(year);
days = new Date();
gdate = days.getDate();
gmonth = days.getMonth();
gyear18 = days.getFullYear()-18;
if(mm>12 || mm<1 ||dd>31 || dd<1) 
{
return
false;
}
if(year % 100 != 0) 
{
if(year % 4 ==0)
monthPerDays[1] = 29;
}
else

{
if(year % 400 == 0)
monthPerDays[1] = 29;
}
if(monthPerDays[mm - 1] < dd) 
{
return
false;
}
if(certid.length == 18) 
{
var arTemp = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
var num = 0;
var proof;
for(var i=0; i < 17; i ++) 
{
num = num + certid.substr(i,1) * arTemp[i];
}
num = num % 11;
switch(num) 
{
case 0:proof='1';break;
case 1:proof='0';break;
case 2:proof='x';break;
case 3:proof='9';break;
case 4:proof='8';break;
case 5:proof='7';break;
case 6:proof='6';break;
case 7:proof='5';break;
case 8:proof='4';break;
case 9:proof='3';break;
case 10:proof='2';break;
}
if(certid.substr(17, 1) != proof) 
{
return
false;
}
}
mm = mm -1;
var prevTS18 = new Date(gyear18, gmonth, gdate,0,0,0);
var ageTs = new Date(yy,mm,dd,0,0,0)
return
true;
}