在不使用正则表达式的情况下验证日期格式

时间:2013-07-17 09:04:09

标签: javascript

我正在尝试编写javascript日期格式验证而不使用正则表达式。当我输入日期26/02/2013时,我的警报值为Wed Sep 2 2093,错误消息日期不是有效格式

任何帮助将不胜感激

    function CheckDateFormat(StartDateform)     

    {   
            var StartDateform= document.getElementById('tblTarget').rows[1].cells[StartDate].getElementsByTagName('input')[0].value;        
            spl = StartDateform.split("/"); 


            var testDate=new Date(spl[2],spl[0]-1,spl[1]);              

            year= testDate.getFullYear();                   
            month = testDate.getMonth()+1;                  
            day= testDate.getDate();

            alert ("the date value is "+ " "+ testDate);

        if (day!==spl[1] || month!==spl[0] || year!==spl[2])                    
        {
            alert ("the date value is "+ " "+ testDate);
            alert(StartDateform + " " + "Is an Invalid Date. Please use the format 'MM/DD/YYYY'");
            return false;
        }


        return true;                        
    }                   

    function Submit() 
    {
        if(CheckDateFormat())
        {
        $('button_submit').click(); 
        alert('New rate submitted');
        }
    }

1 个答案:

答案 0 :(得分:1)

Date constructor期望Y / M / D:

  

Date - 创建可让您使用的JavaScript日期实例   日期和时间。

     

语法

     

new Date();
  new Date(value);
  new Date(dateString);
  的 new Date(year, month, day [hour, minute, second, millisecond]);

如果日期为26/02/2013,则表示您使用的是Y / D-1 / M:

new Date(spl[2],spl[0]-1,spl[1]);

从当天减去1没有任何意义所以我猜你刚刚搞砸了索引。