用javascript检查yyyy-mm-dd格式的正确源码 *******************************
<SCRIPT  LANGUAGE=javascript>          
<!--      function form4_onsubmit()          
{    ymd1=form4.date1.value.split("-");
    month1=ymd1[1]-1
       var Date1 = new Date(ymd1[0],month1,ymd1[2]); 
if (Date1.getMonth()+1!=ymd1[1]||Date1.getDate()!=ymd1[2]||Date1.getFullYear()!=ymd1[0]||ymd1[0].length!=4)
    {
       alert("非法日期,请依【YYYY-MM-DD】格式输入");
        form4.date1.focus();
        return false;          
        }
alert("输入日期:" + form4.date1.value);
return true;
}
//-->          
</SCRIPT>
<% nowdate=year(date)&"-"&month(date)&"-"&day(date)%>
<form name=form4 method="POST" action="chkfind.asp" onsubmit="return form4_onsubmit()">                          
<input type="text" name="date1" size="12" value=<%=nowdate%> >      
</form> 
 

解决方案 »

  1.   

    <script langauge=javascript>
    function checkDate(obj)//判断日期格式是不是符合
    {
    var strDate=obj.value;
    re=/\d{4}\-\d{2}-\d{2}/g
    if(re.test(strDate))//判断日期格式符合YYYY-MM-DD标准
    {
    var DateArray=strDate.split("-");
    var dateElement=new Date(DateArray[0],parseInt(DateArray[1])-1,DateArray[2]);
    if(!((dateElement.getFullYear()==parseInt(DateArray[0]))&&((dateElement.getMonth()+1)==parseInt(DateArray[1]))&&(dateElement.getDate()==parseInt(DateArray[2]))))//判断日期逻辑
    {
    alert("不符合时间逻辑")
    obj.value='';
    }
    else
    {
    alert("正确")
    }
    }
    else
    {
    alert("格式输入错误")
    obj.value='';
    }

    }
    </script>
    <input name=time1 onblur=checkDate(this)>
      

  2.   

    *校验字符串是否为日期型
    *返回值:
    *如果为空,定义校验通过, 返回true
    *如果字串为日期型,校验通过, 返回true
    *如果日期不合法, 返回false 参考提示信息:输入域的时间不合法!(yyyy-MM-dd)
    */
    function checkIsValidDate(str)
    {
    //如果为空,则通过校验
    if(str == "")
    return true;
    var pattern = /^((\\d{4})|(\\d{2}))-(\\d{1,2})-(\\d{1,2})$/g;
    if(!pattern.test(str))
    return false;
    var arrDate = str.split("-");
    if(parseInt(arrDate[0],10) < 100)
    arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
    var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
    if(date.getYear() == arrDate[0]
    && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
    && date.getDate() == arrDate[2])
    return true;
    else
    return false;
    }//
      

  3.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function IsDate(op, formatString){
    formatString = formatString || "ymd";
    var m, year, month, day;
    switch(formatString){
    case "ymd" :
    m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
    if(m == null ) return false;
    day = m[6];
    month = m[5]*1;
    year =  (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
    break;
    case "dmy" :
    m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
    if(m == null ) return false;
    day = m[1];
    month = m[3]*1;
    year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
    break;
    default :
    break;
    }
    if(!parseInt(month)) return false;
    month = month==0 ?12:month;
    var date = new Date(year, month-1, day);
    return (typeof(date) == "object" && year == date.getFullYear() && month == (date.getMonth()+1) && day == date.getDate());
    function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
    }alert(IsDate("2006-03-0"))
    //-->
    </SCRIPT>
      

  4.   

    稍微看了一下,现在的需求是这样的:
    如果输入格式不为yyyy-mm-dd的格式,就跳出提示框提示格式错误即可
    比如后面有空格、日期位数不对等等
    这样如何处理呢
      

  5.   

    <body>
    <input id="date" /><input type="button" value="click" onclick="checkDate()" />
    <script>
    function checkDate()
    {
    var obj=document.getElementById("date");
    var temp=obj.value;
    var pattern=/^(\d{4})-(\d{2})-(\d{2})$/i
    var matches=temp.match(pattern);
    if(matches) //匹配 DDDD-DD-DD 的形式
    {
    var tempDate=new Date(matches[1],matches[2]-1,matches[3]);
    if(tempDate.getYear()!=matches[1]||tempDate.getMonth()!=(matches[2]-1)||tempDate.getDate()!=matches[3]) //检查是否正确日期 比如9923-15-48 等形式
    {
    alert("日期不正确!");
    return false;
    }
    }
    else
    {
    alert("格式错误");
    return false;
    }
    }
    </script>
    </body>
      

  6.   

    TOkangqin(小康) 
    这个方法能不能对输入值为空进行判断呢
    比如输入的是:2005-3 -1
    3后有个空格
      

  7.   

    我提交的是时间查询范围
    有两个文本框输入时间
    对着两个都要判断
    var obj=document.getElementById("date");
    这句是接受一个时间date
    另外一个如何弄呢
    单独再写一个方法吗
      

  8.   

    按照clare2003(忘情火) 的格式我搞定了
    呵呵
    3ks