JavaScript Check on Valid Date

13 04 2006

Whenever I have this combination of three DropDownLists to receive a date for input, I use this little script to validate whether the given date is an actual date or not. You know: preventing the user inputting 30 February or something like that.

I knicked it from some site or other, but I can’t remember where exactly, so if you recognize this script and believe I should give you credit, just let me know and I’ll fix things up.

function isDate(dateStr) {
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
alert(“Please enter your birth date as dd/mm/yyyy. Your current selection reads: ” + dateStr);
return false;
}

day = matchArray[1]; // p@rse date into variables
month = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
alert(“Month must be between 1 and 12.”);
return false;
}

if (day < 1 || day > 31) {
alert(“Day must be between 1 and 31.”);
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert(“Month “+month+” doesn`t have 31 days!”);
return false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
alert(“February ” + year + ” doesn`t have ” + day + ” days!”);
return false;
}
}
return true; // date is valid
}

function checkForValidDate(){
var ddlVMonth = document.getElementById(“_ctl0_DropDownListMaanden”);
var ddlVDay = document.getElementById(“_ctl0_DropDownListDagen”);
var ddlVYear = document.getElementById(“_ctl0_DropDownListJaren”);

if (!isDate(ddlVDay.value + ‘/’ + ddlVMonth.value + ‘/’ + ddlVYear.value))
{ return(false); }

return(true);
}

TechnoratiTechnorati Tags: ,


Actions

Information

9 responses

5 07 2006
bandito green

cool!

7 01 2008
L

thanks!

17 03 2008
l2azz

works great

10 11 2008
Simon

Wow ! Super elegant script ! Thanks a lot ! I love simple and working scripts !!

7 12 2008
Kamesh

Thanks a lot, it helped me greatly ….

22 12 2008
Sinh

Thx a lot. It help me much ^_^

22 12 2008
Sanket Sirotiya

Thanks Buddy

19 01 2009
Punit

Thanks a lot! :)

24 02 2009
Pavan

Great Code

Leave a comment