http://expert.csdn.net/Expert/topic/1490/1490929.xml?temp=.9921839<script language="JavaScript">
<!--
function CheckDate(str){//1998-12-12  
    var reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/; 
    var r = str.match(reg); 
    if(r==null)return false; 
    r[2]=r[2]-1; 
    var d= new Date(r[1], r[2],r[3]); 
    if(d.getFullYear()!=r[1])return false; 
    if(d.getMonth()!=r[2])return false; 
    if(d.getDate()!=r[3])return false; 
    return true;
}
alert(CheckDate("1998-12-12"))
//-->
</script>

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1490/1490929.xml?temp=.9921839<script language="JavaScript">
    <!--
    function CheckDate(str){//1998-12-12  
        var reg = /^(\d{4})-(\d{1,2})-(\d{1,2})$/; 
        var r = str.match(reg); 
        if(r==null)return false; 
        r[2]=r[2]-1; 
        var d= new Date(r[1], r[2],r[3]); 
        if(d.getFullYear()!=r[1])return false; 
        if(d.getMonth()!=r[2])return false; 
        if(d.getDate()!=r[3])return false; 
        return true;
    }
    alert(CheckDate("1998-12-12"))
    //-->
    </script>
      

  2.   

    function isdate(strDate){
       var strSeparator = "-"; //日期分隔符
       var strDateArray;
       var intYear;
       var intMonth;
       var intDay;
       var boolLeapYear;   strDateArray = strDate.split(strSeparator);   if(strDateArray.length!=3) return "false";   intYear = parseInt(strDateArray[0],10);
       intMonth = parseInt(strDateArray[1],10);
       intDay = parseInt(strDateArray[2],10);   if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return "false";   if(intMonth>12||intMonth<1) return "false";   if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return "false";   if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return "false";   if(intMonth==2){
          if(intDay<1) return "false";      boolLeapYear = false;
          if((intYear%100)==0){
             if((intYear%400)==0) boolLeapYear = true;
          }
          else{
             if((intYear%4)==0) boolLeapYear = true;
          }      if(boolLeapYear){
             if(intDay>29) return "false";
          }
          else{
             if(intDay>28) return "false";
          }
       }   return "true";
    }//自动增加'-'用于日期input输入框
    function add_sign(field) {
    if (field.value.length==4){
    field.value= field.value+"-"
    }
    if (field.value.length==7){
    field.value = field.value+"-"
    }
    if (field.value.length==10 ){
    if (isdate(field.value)=="false"){
    field.value ="";
    field.focus();
    window.alert ("日期格式不对!(YYYY-MM-DD)");
    }
    if (isdate(field.value)!="false"){
    getNextElement(field).focus(); 
    }
    }
    }
    //自动跳转到下一个输入框
    function  getNextElement  (field)  { 
        var  form  =  field.form; 
        for  (var  e  =  0;  e  <  form.elements.length;  e++) 
            if  (field  ==  form.elements[e]) 
                break; 
        return  form.elements[++e  %  form.elements.length]; 
    }