Features:
- Text box control values can be validated as correct date
- Month can be entered compulsory with two digits either 0 or 1 as first digit. So possible invalid entries are from 13 to 19.
- Date can be entered compulsory with two digits either 0,1,2 or 3 as first digit. So possible invalid entries are from 32 to 39.
- Entry will be validated on blur event. In case of invalid date then blank TextBox.
- It will also validate for Leap years for Feb month. Also, it will validate 31 date for April, June, Sep & Nov months.
JavaScript Function:
function isDate(txtDate) {
var currVal = txtDate.val();
if (currVal == '') {
txtDate.val('');
return false;
}
//Declare Regex
var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var dtArray = currVal.match(rxDatePattern); // is format OK?
if (dtArray == null) {
txtDate.val('');
return false;
}
//Checks for mm/dd/yyyy format.
dtMonth = dtArray[1];
dtDay = dtArray[3];
dtYear = dtArray[5];
if (dtMonth < 1 || dtMonth > 12) {
txtDate.val('');
return false;
}
else if (dtDay < 1 || dtDay > 31) {
txtDate.val('');
return false;
}
else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31) {
txtDate.val('');
return false;
}
else if (dtMonth == 2) {
var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
if (dtDay > 29 || (dtDay == 29 && !isleap)) {
txtDate.val('');
return false;
}
}
return true;
}