<script>
function check(str){
var re=/^(\d{4})-(\d{1,2})-(\d{1,2})$/;
var r=str.match(re)
r[2]=r[2]-1;
with (new Date(r[1],r[2],r[3]))
return (getFullYear()==r[1]&&getMonth()==r[2]&&getDate()==r[3]);
}
</script>
<input name=mydate value="2003-03-27">
<input type=button value=click onclick="alert(check(mydate.value))">

解决方案 »

  1.   

    一个问题不要发量变嘛!
    <html>
    <head>
    <title>test</title>
    </head>
    <body>
    <h1><center>test</center></h1><form>
    <input type='text' name='haha' value="2002-01-01" onblur="return isNumber(this)">
    </form>
    </body>
    </html>
    <script language="javascript">
    function isNumber(mydate)
     {
      var letters="0123456789";
      var isok=1;
      var olddate=mydate.value;
      if(mydate.value.length!=10)
         isok=0;
      if(isok==1)
        {   
          for(i=0;i<=mydate.value.length;i++)
           { 
             if(i==4) continue;
             if(i==7) continue;     
             var checkchar=mydate.value.charAt(i);
              
             if(letters.indexOf(checkchar)==-1)
               {
                 isok=0;
                 break;
               }
          } 
        }
      if(isok==1)
        {
            var checkchar=mydate.value.charAt(4); 
             
            if(checkchar=="-") isok=1;
            else  isok=0;      
        }     
      if(isok==1)
        {
            var checkchar=mydate.value.charAt(7); 
             
            if(checkchar=="-") isok=1;
            else  isok=0;      
        }     
      if(isok==1)
        {
            var yue;
            var checkchar=mydate.value.charAt(5); 
             
            var checkchar1=mydate.value.charAt(6); 
            
            
            yue=checkchar+checkchar1;
            if(yue>12) isok=0;
            if(yue< 1) isok=0;
         }
          
      if(isok==1)
        {
            var yue;
            var checkchar=mydate.value.charAt(8); 
             
            var checkchar1=mydate.value.charAt(9); 
            
            
            yue=checkchar+checkchar1;
            if(yue>31) isok=0;
            if(yue< 1) isok=0;
        
        }    
      if(isok==0)
        {
           alert("错误!!"+"请输入正确的日期格式(yyyy-mm-dd),年份为4位,月份和日期为2位.\n"+"例如:2002-01-01.")
           mydate.value=olddate;
           mydate.focus();
           
        }      
     }
    </script>