function validDate(dateStr) { var datePat = /^(\d{1,2})(\/)(\d{1,2})(\/)(\d{2}|\d{4})$/; var matchArray = dateStr.match(datePat); if (matchArray == null) { return false; } month = matchArray[1]; // parse date into variables day = matchArray[3]; year = matchArray[5]; if (month < 1 || month > 12) { // check month range 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) { // check for february 29th var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); if (day>29 || (day==29 && !isleap)) { return false; } } if (year.length == 2) { if (Number(year)<50 && Number(year)>=0) year = "20" + year; else year = "19" + year; } if (year.length != 4) return false; if (year < "1901") return false; return true; // date is valid }