也就是验证年是不是在指定的区间,月是不是大于0小于13的整数,日期麻烦一点,要根据年月来判断天数是不是合法.或者有种简单的方法,根据年月日生成个日期类型,然后用date.getFullYear(),getMonth(),getDate()方法判断是不是和原来的值相等就可以了关于日期的常见操作
http://community.csdn.net//Expert/TopicView2.asp?id=4360247&datebasetype=now
js FAQ贴
http://community.csdn.net//Expert/TopicView2.asp?id=4356360&datebasetype=now
DHTML手册,js手册,dom手册下载
http://community.csdn.net//Expert/TopicView2.asp?id=4356325&datebasetype=now

解决方案 »

  1.   

    zhaoxiaoyang(梅雪香@深圳):
    id = document.form1.zjhm.value;
    part67 = 19+id.substr(5,2);
    part89 = id.substr(7,2);
    part1011 = id.substr(9,2);
    date15 = new Date(part67,part89,part1011);
    if (part89 != date15.getMonth() || part1011 != date15.getDay()){
    alert("您输入的身份证号码中出生日期非法,请重新输入");
    return false;
    }
    现在的这个判断好像还是有点毛病,连正常的身份证号码都通不过!
      

  2.   

    <script>
    function isShortDate(elem){
      var pattern=/^(\d{4})(-)(\d{2})(-)(\d{2})$/;
      var temp=elem.match(pattern);
      if(temp==null){
        return  false;
      }
      //
      var d=new Date(temp[1]+"/"+temp[3]+"/"+temp[5]);
      return d.getFullYear()==temp[1]&&
             (d.getMonth()+1)==temp[3]&&
                     d.getDate()==temp[5];
    }
    </script>
      

  3.   

    你早说验证身份证啊<SCRIPT LANGUAGE="JavaScript">
    <!--
    /*检查身份证号码是否正确的函数
     *
     */
    function isIdCardNo(num)
    {
    var len=num.length;
    var reg = null;
    if(len == 15){
    reg=/^\d{6}(\d{2})(\d{2})(\d{2})\d{3}/;
    }
    else if(len == 18){
    reg=/^\d{6}(\d{4})(\d{2})(\d{2})\d{3}[\d|a-z]$/;
    }
    if(reg == null || !(reg.test(num))){
    alert("身份证号码不正确!");
    return false;
    }
    var arrDate = num.match(reg);
    arrDate[1] = (arrDate[1].length==2?("19"+arrDate[1]):arrDate[1]);
    if(!testDate(parseInt(arrDate[1],10),parseInt(arrDate[2],10),parseInt(arrDate[3],10))){
    alert("身份证号码中日期不正确!");
    return false;
    }
    return true;
    }
    function testDate(nYear,nMonth,nDay){
    var d = new Date(nYear+"/"+nMonth+"/"+nDay);
    return ((d.getFullYear()==nYear) && (d.getMonth()==(nMonth-1)) && (d.getDate()==nDay));
    }
    alert(isIdCardNo("21102219810526557d"));
    //->
    </SCRIPT>