日期有个验证简单些,网上的,大小比较就很简单了,可以直接当字符传比较<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language=javascript>
String.prototype.isTime = function()
{
var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/);
if(r==null)return false; var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],0);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]);
}
alert("2002-1-31 12:34".isTime());
alert("2001-2-29 12:54".isTime());
alert("2002-1-41 12:00".isTime());String.prototype.isDate = function()
{
var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false; var d = new Date(r[1], r[3]-1,r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
alert("2002-1-31".isDate());
alert("2001-2-29".isDate());
alert("2002-1-41".isDate());
</script>
</HEAD><BODY></BODY>
</HTML>

解决方案 »

  1.   

    function check(s){
      if(s.match(/^\d{4}-[0-1]?\d-[0-3]?[\d]$/g)==null){
        alert("Error!")
        return false;
      }
      var a = s.split("-")
      y = parseInt(a[0]);
      m = parseInt(a[1])-1;
      t = parseInt(a[2]);
      d = new Date(y,m,t);
      if(d.getFullYear()!=y || d.getMonth()!=m || d.getDate()!=t){
        alert("Error~!")
        return false;
      }
      return true;
    }
    alert(check("2000-1-1"))
      

  2.   

    function CheckDate( str )
    {
      var re=/^\d{4}-\d{1,2}-\d{1,2}$/;
      var r=str.match(re);
      if (r==null)
      {
        alert("请按以下格式填写日期: yyyy-mm-dd!");
        return false;     
      }
      else
      {
        var s=str.split("-");
        var years = parseInt(s[0]);
        var months = parseInt(s[1]);
        var days = parseInt(s[2]);
        if (parseInt(s[0].substring(0,2))<19 || months>12 || months<1 || days>31 || days<1)
        {
          alert(请填写正确的日期);
          return false
        }       
        
        switch(months)
        {
          case 2:
            if((years%4 == 0 && years%100 != 0) || (years%400 == 0))
            {
              if(days > 29)
              {
                alert(闰年二月没有+days+日!);
                return false;
              }                 
            }
            else
            {
              if(days > 28)
              {
                alert(平年二月没有+days+日!);
                return false;
              }
            }
            break;
          
          case 4:
            if(days > 30)
            {
              alert(四月没有+days+日!);
              return false;
            }
            break;
          case 6:
            if(days > 30)
            {
              alert(六月没有+days+日!);
              return false;
            }
            break;
          case 9:
            if(days > 30)
            {
              alert(九月没有+days+日!);
              return false;
            }
            break;
          case 1:
            if(days > 30)
            {
              alert(十一月没有+days+日!);
              return false;
            }
            break;
        }
        return true;
      }
    }
      

  3.   

    晕死,直接用VBSCRIPT的isDate()就不行了嘛。
      

  4.   

    //判断是否日期
    function isDate(str) {
    var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
    if (r==null)
    return false; 
    var d = new Date(r[1], r[3]-1, r[4]); 
    return (d.getFullYear()==r[1] && (d.getMonth()+1)==r[3] && d.getDate()==r[4]);
    }