我在HTML中的文本框中有一個像12-08-1989的出生日期。我想驗證用戶必須是18歲的JavaScript。JavaScript中的出生日期驗證?
我已經在JavaScript中使用Date函數,但它似乎接受YYYY-MM-DD格式,但我想在DD-MM-YYYY中進行驗證。
我該如何做到這一點?
我在HTML中的文本框中有一個像12-08-1989的出生日期。我想驗證用戶必須是18歲的JavaScript。JavaScript中的出生日期驗證?
我已經在JavaScript中使用Date函數,但它似乎接受YYYY-MM-DD格式,但我想在DD-MM-YYYY中進行驗證。
我該如何做到這一點?
var pattern =/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/;
if(pattern.test(str_input_date))
{
alert("valid date");
}
這應該給你一個開始。 :)
但我怎麼能驗證日期與此代碼 – saurav
您可以使用日期類,就這樣
try{
var x=new Date('1/1/2001');
var Cnow=new Date();//current Date
if(Cnow.getFullYear()- x.getFullYear()<18){
alert('not old enough');
}
else{
//success !!!
}
}
catch(ejs){alert('invalid')}
你或許應該使用一些驗證框架,像jQuery.validation。這是在你的代碼中處理驗證的更一致的方式。如果這是您的應用中唯一經過驗證的字段,那麼您當然可以使用上面提供的樸素實現。
無論您是需要一些先進的日期驗證規則,你可以使用一個JS日期的框架,像Moment.js(或Date.js,這是非常不合時宜的時刻)。
「我已經使用日期函數JavaScript,但現在看來似乎接受YYYY-MM-DD的格式,但我想在DD-MM-YYYY驗證」
你可以通過創建一個Date對象年,月和日(和可選的小時,分鍾,秒和毫秒)值分別:
var aDate = new Date(2012, 5, 22);
所以,如果你使用正則表達式或其他字符串的方法來提取用戶輸入的內容的作品那麼你可以創建一個你喜歡的DD-MM-YYYY(或任何其他)格式的日期。
如果用戶是年滿18歲將是18年加入到他們的出生日期,看看是否能打開或今天的日期之前,我想測試的方式:
aDate.setFullYear(aDate.getFullYear() + 18)
各種Date對象上可用的方法是listed at MDN。
如果JavaScript在瀏覽器中被禁用,該怎麼辦? – BalusC
這可能是一種可能性,但我需要它可以請你告訴我我怎麼能在javascript – saurav
我不知道@BalusC,這仍然是一個在Facebook,谷歌等時代與大量jQuery的問題/基於AJAX的用戶界面? – benqus