2014-04-18 99 views
1

我需要在我的註冊表單中驗證我的出生日期有效日期不能在將來,並且不存在不存在的日期,例如31年6月有沒有簡單的方法來做到這一點,而無需編碼每一個月?驗證出生日期註冊日曆

+4

jQuery的日期選擇器。或者HTML5'type =「date」' –

回答

0

如果你想這樣做手動..此代碼應該足夠了(我很確定該模式支持dd/mm/yyyy)。

function checkDateTime(newDate) { 
    var pattern = '^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$'; 
    var regex = new RegEx(pattern); 

    if (typeof newDate === 'string' && newDate.trim().match(regex)) { 
     var parsedDate = new Date(newDate); 
     var today = new Date(); 
     if (parsedDate.getTime() >= today.getTime()) { 
      //The date is valid... 
     } 
    } 
} 
+0

謝謝你的回答我最終使用JavaScript手動編寫了整個東西,這相對容易,因爲只有7個月的時間在一年的第31年結束 – droo

0

如果你正在使用jQuery的日期選擇器,你可以使用此代碼:

$("#born_date").datepicker({ 
    changeYear: true, 
    changeMonth: true, 
    maxDate: '+0d', 
    yearRange: '-90:+0', 
    numberOfMonths: 1 
}); 

最好的問候!

+0

我更喜歡使用舊的selectbox格式並驗證表單數據,而不是插件我只需要代碼來驗證selectbox的日期,月份和年份字段 – droo

+0

然後告訴我們你的'一直到現在爲止 – Ritikesh

0

使用JavaScript與HTML5驗證模式組合:

<input type="text" pattern="(0[1-9]|1[0-9]|2[0-9]|3[01])/(0[1-9]|1[012])/[0-9]{4}" 
onchange="this.className = Date.parse(this.value) < Date.now() && 'valid'"> 

在這裏找到更多的模式: http://html5pattern.com/Dates

如果有人

+0

thanx我將在我的其他項目中使用它 – droo