JavaScript - Проверка даты по формату: различия между версиями
Перейти к навигации
Перейти к поиску
ILobster (обсуждение | вклад) (категории) |
ILobster (обсуждение | вклад) м (ещё категории) |
||
Строка 47: | Строка 47: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Категория:JavaScript]] | [[Категория:JavaScript]] |
Версия от 18:11, 14 июня 2014
Описание
Иногда нужно проверять вводимую пользователем дату в поле ввода веб-формы на соответствие формату.
Проверять нужно следующее:
- дата соответствует региональному формату, например для России:
ДД.ММ.ГГГГ
; - месяцев должно быть не больше
12
; - дней должно быть не больше
30/31
;- для февраля должно быть не больше
28
;- для високосного февраля можно
29
.
- для високосного февраля можно
- для февраля должно быть не больше
Реализация
Проверять будем сразу на клиенте, не отправляя на сервер, потому реализация на JavaScript:
// проверка даты по формату ДД.ММ.ГГГГ
function isDateCorrect(val4check) {
// сначала по регулярному выражению
if (!val4check.match(/^\d\d.\d\d.\d\d\d\d$/)) { return false; }
// год, месяц, день
year = parseInt(val4check.substr(6, 4), 10);
month = parseInt(val4check.substr(3, 2), 10);
day = parseInt(val4check.substr(0, 2), 10);
// 31 день
if (day > 31) { return false; }
// 12 месяцев
if (month > 12) { return false; }
// 30 дней
if (month == 4
|| month == 6
|| month == 9
|| month == 11)
{ if (day > 30) return false; }
// февраль
if (month == 2) {
if (new Date(year, 1, 29).getMonth() === 1) { if (day > 29) { return false; } }
else { if (day > 28) { return false; } }
}
// это кошерная дата
return true;
}