我想要的结果是限定死了,就是yyyy-dd的格式,填的不对就重题

解决方案 »

  1.   

    <script   language=javascript>   
      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]);   
      }   
      function mm(obj)
      {
       if(!obj.value.isDate())
       {
       alert("不是时间")
       obj.value=''
       }
      }
      </script>   
      <input   onblur="mm(this)">
      

  2.   

    因为我要填两个日期,如果用上面的方面,obj.focus()时会出现问题,即输入第一个日期后,鼠标点击下一个输入框时,会不停的弹出 “格式不对”这样的窗口,所以,我想还是在提交时做个判断比较好。
      

  3.   

    http://www.blogjava.net/mxx/archive/2006/09/27/72159.html<script language="JavaScript">
    <!--
    function CheckDate(strDate){
    var reg=/^(\d{4})([-])(\d{2})([-])(\d{2})/;
    if(!reg.test(strDate)){
    alert("日期格式不正确!\n正确格式为:2004-01-01");
    return false;
    }
    var ss=strDate.split("-");
    var year=ss[0];
    var month=ss[1];
    var date=ss[2];
    if(!checkYear(year)){return false;}
    if(!checkMonth(month)){return false;}
    if(!checkDate(year,month,date)){return false;}
    return true;
    }
    function checkYear(year){
    if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!"); return false;}
    else if(parseInt(year)<1950 || parseInt(year) >2050){ alert("年份应该在1950-2050之间!"); return false}
    else return true;
    }
    function checkMonth(month){
    if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!"); return false;}
    else if(parseInt(month)<1 || parseInt(month) >12){ alert("月份应该在1-12之间!"); return false}
    else return true;
    }
    function checkDate(year,month,date){
    var daysOfMonth=CalDays(parseInt(year),parseInt(month));
    if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}
    else if(parseInt(date)<0||parseInt(date)>daysOfMonth){ alert("日期应该在1-"+daysOfMonth+"之间!"); return false;}
    else return true;
    }
    function CalDays(year,month){
    var date= new Date(year,month,0);
    return date.getDate();
    }
    function isLeapYear(year){
    if((year %4==0 && year %100!=0) || (year %400==0)) return true;
    else return false;
    }
    alert(CheckDate("2007-02-29"));
    //-->
    </script>