2016-04-29 84 views
0

年齡應在15-80之間。下面是我的驗證代碼,但似乎沒有工作:我需要使用年齡驗證以dd/mm/yy格式(閏年)驗證dob - Javascript

雖然我還沒有做過年齡驗證。

功能isValidDate(DOB){

var dob = document.getElementById("dob").value; 
// First check for the pattern 
if(!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(dob)) 
    result = false; 

// Parse the date parts to integers 
var parts = dob.split("/"); 
var day = parseInt(parts[1], 10); 
var month = parseInt(parts[0], 10); 
var year = parseInt(parts[2], 10); 

// Check the ranges of month and year 
if(year < 1000 || year > 3000 || month == 0 || month > 12) 
    result = false; 

var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; 

// Adjust for leap years 
if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) 
    monthLength[1] = 29; 

// Check the range of the day 
return day > 0 && day <= monthLength[month - 1]; 

};

+0

而不是搜索你爲什麼不寫一個實現? – void

+0

請先分享您的代碼,如果您在某處尋求幫助。 –

+0

@KrutiPatel對不起。我已經添加。請看一下。 –

回答

0

擴大對@PerryW的評論,這是使用Moment.JS

var moment = require('moment'); 
var dateString = document.getElementById("dob").value; 

var dob = moment(dateString); 

// Age validation 
var now = moment(); 
var minDob = now.subtract(81, 'years').add(1, 'days'); 
var maxDob = now.subtract(15, 'years'); 

if (dob.isBetween(minDob, maxDob, 'day')) { 
    // Person is between 15 and 80 years old 
} else { 
    // Person is too young or too old 
}