高手来指点下不足交流下...顺便散分混个眼熟
/*
函数名:chk_IDAndDate(id,nian,yue,ri)
参数:id(身份证),nian(年),yue(月),ri(日)
作用:验证身份证中的出生年月和出生日期是否一样
作者:王朝忠
日期:2010-5-14
*/
function chk_IDAndDate(id,nian,yue,ri)
{
var patrn=/^[0-9]+$/;
var patrn_18=/^[0-9Xx]+$/;
var id_value=id.value;
var nian_value=nian.value;
var yue_value=yue.value;
var ri_value=ri.value;
if (id_value != "" && nian_value != "" && yue_value != "" && ri_value !="")
{
if(id_value.length == 15)
{
if (patrn.exec(id_value))
{
nian_value = nian_value.substring(nian_value.length-2,nian_value.length);
id_nian = id_value.substring(6,8)
id_yue = id_value.substring(8,10)
id_ri = id_value.substring(10,12)
if (parseInt(nian_value) != parseInt(id_nian) || parseInt(yue_value) != parseInt(id_yue) || parseInt(id_ri) != parseInt(ri_value))
{
alert("您输入的身份证日期与出生日期不符,请重新确认!");
id.select();
return false;
}
}
else
{
alert("您输入的身份证有误,请重新确认!");
id.focus();
id.select();
return false;
}
}
else if(id_value.length == 18)
{
if (patrn_18.exec(id_value))
{
id_nian = id_value.substring(6,10)
id_yue = id_value.substring(10,12)
id_ri = id_value.substring(12,14)
if (parseInt(nian_value) != parseInt(id_nian) || parseInt(yue_value) != parseInt(id_yue) || parseInt(id_ri) != parseInt(ri_value))
{
alert("您输入的身份证日期与出生日期不符,请重新确认!");
id.select();
return false;
}
}
else
{
alert("您输入的身份证有误,请重新确认!");
id.focus();
id.select();
return false;
}
}
else
{
alert("您输入的身份证有误,请重新确认!");
id.focus();
id.select();
return false;
}
}
else if(id_value!="")
{
if (id_value.length == 15)
{
if (!patrn.exec(id_value))
{
alert("您输入的身份证有误,请重新确认!");
id.focus();
id.select();
return false;
}
}
else if (id_value.length == 18)
{
if (!patrn_18.exec(id_value))
{
alert("您输入的身份证有误,请重新确认!");
id.focus();
id.select();
return false;
}
}
else
{
alert("您输入的身份证有误,请重新确认!");
id.focus();
id.select();
return false;
}
}
}