Я пытаюсь написать валидатор даты, который примет дату, введенную в виде строки длиной 8 в формате ddmmyyyy. Он должен проверить его на все основы для допустимой даты и вернуть в результате как true, так и false.Создание валидатора даты
Я не могу использовать дополнительную библиотеку, такую как момент, и я не могу использовать регулярные выражения (это не домашнее задание, мне просто говорят работать в рамках этих ограничений).
Буду признателен, если люди скажут мне, что случилось с тем, что у меня внизу!
function isValidDate(i) {
if (i.length == 8) {
var dd = i.substring(0, 2);
var mm = i.substring(2, 4);
var yyyy = i.substring(4, 7);
var day = parseInt(dd,10);
var month = parseInt(mm,10);
var year = parseInt(yyyy,10);
if (year % 4 != 0 && day = 29 && month = 02) {
return false;
} else if (day > 31) {
return false;
} else if (month > 12) {
return false;
} else {
return true;
}
} else {
return false;
}
return true;
}
После того, как вы разделили строку на переменные 'yyyy',' mm', 'dd', вы можете создать новый объект Date из этих данных и проверить, имеют ли объекты Date те же переменные, которые были наложены на создание объекта Date. – Epsil0neR
Ваша функция позволяет день = 31 в течение месяцев, которые имеют только 30 дней – Barmar
Это также разрешает 30 февраля и 31 февраля, но не 29 февраля, кроме как в високосные годы (но он не знает правила века за високосные годы). – Barmar