先正则,判断是,
然后截取日期字符串,转成Date格式,转失败就说明不符合日期格式
然后再比较时间,就是在那100年内

解决方案 »

  1.   

    不用正则的话自己写这样一个应该比较容易吧<html>
    <head>
    </head>
    <body>
    <script>
    function chkID() {
      var id=document.all.idNo.value;
      var t=new Date();
      var day=parseInt(t.getDate());
      var month=parseInt(t.getMonth())+1;
      var year=parseInt(t.getYear());
      var idyear;
      var yearStart=year-100;
      var yearEnd=year+1;
      
      if(id.length==15) {
        idyear=id.substr(6,2);  //身份证年份      
        if( parseInt(idyear) > parseInt(yearStart.toString().substr(2,2)) && parseInt(id.substr(8,2))==month && parseInt(id.substr(10,2))==day ) {
          alert('right');return true;
        }
        else {
            alert('wrong');return false;
        }
      }
      if(id.length==18) {
        idyear=id.substr(6,4);  //身份证年份      
        if( parseInt(idyear) > yearStart && parseInt(id.substr(10,2))==month && parseInt(id.substr(12,2))==day )
         { alert('right');return true;}
        else {
          alert('wrong');return false;
        }  
      }  alert('wrong');
      return false;
    }
    </script>
    <br>
    <form onsubmit="return chkID()">
    <input type="text" name="idNo" size="20" />
    <br><br>
    <input type="submit" value="test"/>
    </form>
    <br>
    </body>
    </html>
      

  2.   

    parseInt(id.substr(10,2))==month && parseInt(id.substr(12,2))==day这句有问题?