Revision: 54990
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 20, 2012 11:19 by pumpkinthehead
Initial Code
// Validates date inputs
function isDate(dateStr, testYear) {
var dateObj;
var dateStamp;
var day;
var month;
var year;
var dateRegex;
// Set regex pattern based to test for year or not.
if(testYear === undefined || testYear == true) {
testYear = true;
dateRegex = /^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/.exec(dateStr);
} else {
testYear = false;
dateRegex = /^([0-9]{1,2})\/([0-9]{1,2})$/.exec(dateStr);
}
// Validate string.
if(dateRegex == null) {
return false;
}
// Get day, month, and year if testYear selected (or by default).
month = parseInt(dateRegex[0]) - 1; // Subtract 1 because JS dates are 0-11.
day = parseInt(dateRegex[1]);
if(testYear) {
year = parseInt(dateRegex[2]);
} else {
year = 1999; // This is arbitrary so long as it isn't a leap year.
}
// Create dateObj.
dateStamp = (new Date(year, month, day)).getTime();
dateObj = new Date();
dateObj.setTime(dateStamp);
// Validate date.
if (dateObj.getMonth() !== month || dateObj.getDate() !== day || dateObj.getYear() !== year) {
return false;
}
return true;
}
Initial URL
Initial Description
Find the date with or without a year and with double or single digit month or day. Easily extendable to other date delimiters and formats.
Initial Title
Flexible JavaScript Date Validation w/ Regex
Initial Tags
regex, javascript, date, validation
Initial Language
JavaScript