因为我不知道身份证上户口所在地的值是用什么规则规定的,而且也没必要验证的那么详细。就没有做户口验证。
以下是引用片段:
function isValidDate( year, month, day )
{
year = parseInt(year,10);
month = parseInt(month,10);
day = parseInt(day,10);
if (( month==4) || (month==6) || (month==9) || (month==11) )
{ if (( day < 1) || (day > 30) )
{ alert( "日期在1 - 30之间" );
return (false);
}
}
else
{ if ( month!=2 )
{ if ( (day < 1) || (day > 31 ))
{ alert( "日期在1 - 31之间" );
return (false);
}
}
else
{ // month == 2
if ( ( year % 100 ) != 0 && (year % 4 == 0) || ( year % 100 ) == 0 && ( year % 400) == 0 )
{ if ( day > 29 )
{ alert( "日期在1 - 29之间" );
return (false);
}
}
else
{ if ( day > 28 )
{ alert( "日期在1 - 28之间" );
return (false);
}
}
}
}
return (true);
}
function isIdCardNo(s)
{
if ((s.length <15)||(s.length ==16)||(s.length ==17)||(s.length >18)){
window.alert("身份证位数不正确!");
return false;
}
slen=s.length-1;//身份证除最后一位外,必须为数字!
for (i=0; i<slen; i++)
{
cc = s.charAt(i);
if (cc <"0" || cc >"9")
{
return false;
}
}
//提取年月日
var strYear = parseInt(s.substring(6,10))
var strMonth = parseInt(s.substring(10,12))
var strDay = parseInt(s.substring(12,14))
// Form1.year的代码根据个人情况变动
var vYear=parseInt(document.Form1.year.options[document.Form1.year.selectedIndex].text)
var vMonth=parseInt(document.Form1.month.options[document.Form1.month.selectedIndex].text)
var vDay=parseInt(document.Form1.day.options[document.Form1.day.selectedIndex].text)
//判断输入的出生年月日是否是正确的日期
if(!isValidDate(strYear,strMonth,strDay))
{
window.alert("请检查身份证是否输入正确!");
return false;
}
//判断是否与出生年月日吻合
if((strYear!=vYear)||(strMonth!=vMonth)||(strDay!=vDay))
{
window.alert("身份证号与输入的出生年月日不符!");
return false;
}
//document.Form1.ceshi.value=strMonth
//document.Form1.ceshi2.value=vMonth
return true;
}
|