Возможный дубликат:
Обнаружение экземпляра Date «недопустимой даты» в JavaScriptЯ использовал следующее, чтобы определить допустимую дату:
var text = $('#Date').val(); var date = Date.parse(text); if (isNaN(date)) { // Invalid date }
Но обнаружено, что Date.parse считает, что следующие допустимые даты (мм / дд / гггг)
- 30.02.2011
- 31.11.2011
Любой другой способ обнаруживать недопустимые даты, когда количество дней превышает общее количество дней в месяце?
ОБНОВЛЕНИЕ: Еще более серьезная проблема заключается в том, что подключаемый модуль проверки jQuery также не определяет это как недопустимую дату!
РЕШЕНИЕ:
На основе комментариев @ Guffa я создал следующую функцию для проверки дат:
function validDate(text) { var date = Date.parse(text); if (isNaN(date)) { return false; } var comp = text.split('/'); if (comp.length !== 3) { return false; } var m = parseInt(comp[0], 10); var d = parseInt(comp[1], 10); var y = parseInt(comp[2], 10); var date = new Date(y, m - 1, d); return (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d); }