| <SCRIPT>
function isValidDate(strDate)
{
//
(\d{1,2}) means 4 or 12
//
(\/|-)
means either (/ or -),
4-12 or 4/12
//
NOTE: we have to escape / (\/)
// or else pattern
matching will interpret it to mean the end instead of the literal "/"
//
\2 use the 2nd placeholder (\/|-)
"here"
// (\d{2}|\d{4})
means 02 or 2002
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
var matchArray =
strDate.match(datePat);
if (matchArray ==
null) return false;
// matchArray[0]
will be the original entire string, for example, 4-12-02 or 4/12/2002
var month =
matchArray[1]; //
(\d{1,2}) - 1st parenthesis set - 4
var day = matchArray[3];
// (\d{1,2}) -
3rd parenthesis set - 12
var year =
matchArray[4]; //
(\d{2}|\d{4})
- 5th parenthesis set - 02 or 2002
if (month < 1 ||
month > 12) return false;
if (day < 1 ||
day > 31) return false;
if ((month == 4 ||
month == 6 || month==9 || month == 11) && day == 31) return
false;
if (month == 2) {
var
isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 ==
0));
if
(day > 29 || (day == 29 && !isleap)) return false;
}
return true;
}
</SCRIPT> |