//函数名:CheckDateTime  
//功能介绍:检查是否为日期时间 
function CheckDateTime(str){  
    var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\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], r[4],r[5], r[6]); 
    if(d.getFullYear()!=r[1])return false; 
    if(d.getMonth()!=r[2])return false; 
    if(d.getDate()!=r[3])return false; 
    if(d.getHours()!=r[4])return false; 
    if(d.getMinutes()!=r[5])return false; 
    if(d.getSeconds()!=r[6])return false; 
    return true;
}

解决方案 »

  1.   

    验证并自动纠错。
    http://jkisjk.vip.sina.com/code/html/forCheckDateInput.htm
      

  2.   

    /*** 简单的日期检查,成功返回日期对象 ***/
    String.prototype.isDate = function() {
      var p;
      var re1 = /(\d{4})[年./-](\d{1,2})[月./-](\d{1,2})[日]?$/;
      var re2 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{2})[年]?$/;
      var re3 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{4})[年]?$/;
      if(re1.test(this)) {
        p = re1.exec(this);
        return new Date(p[1],p[2],p[3]);
      }
      if(re2.test(this)) {
        p = re2.exec(this);
        return new Date(p[3],p[1],p[2]);
      }
      if(re3.test(this)) {
        p = re3.exec(this);
        return new Date(p[3],p[1],p[2]);
      }
      return false;
    }
      

  3.   

    验证并自动纠错。  ============================================================================<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>New Page 2</title>
    </head><body>
    日期输入验证。blur一下,可以看到效果<br>
    日期1<input onblur="checkDateInput(this);" value="2002.3.6"><br>
    日期2<input onblur="checkDateInput(this);" value="2.3.6"><br>
    日期3<input onblur="checkDateInput(this);" value="2002/2/31"><br>
    日期4<input onblur="checkDateInput(this);" value="fdsaf"><br><!--以下一段是日期弹出框所需内容-->
    <script> 
    function checkDateInput(obj)  //用于检查日期输入是否正确 (日期输入范围为1930-01-01 到2200-12-31)
    {
    if (obj.value.length==0) return false;
    var objValue=obj.value.replace(/[-\.]/g,"/");
    var a=new Date(objValue);
    if (isNaN(a))
    {
    obj.value="";
    alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。");
    obj.focus();
    return false;
    }
    var b;
    if (a.getFullYear()<1900||a.getFullYear()>2200)
    {var Today=new Date();
    b=Today.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate();
    }
    else if (a.getFullYear()<1930)
    b=(a.getFullYear()+100)+"-"+(a.getMonth()+1)+"-"+a.getDate();
    else b=a.getFullYear()+"-"+(a.getMonth()+1)+"-"+a.getDate();
    obj.value=obj.value.replace(/[-\.\/]0*/g,"-");
    if (b!=obj.value)
    {
    obj.value=b;
    alert("!!!!请注意:\n您刚才输入的日期不正确,我们已进行了修改。");
    obj.select();
    obj.focus();
    return false;
    }
    return true;
    }
    </script>
    <!--以上一段是日期弹出框所需内容-->
    </body>
    </html>