20.07.2016, 19:42
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,103
|
|
Rise,
function validate_date(date) {
var str = date.trim().split("/");
if (str.length == 3) {
str = new Date(str[2], str[0] - 1, str[1], 0, 0, 0);
if (!str) return false;
str = [("0" + (str.getMonth() + 1)).substr(-2), ("0" + str.getDate()).substr(-2), str.getFullYear()].join("/");
return str === date.trim()
}
return false
};
alert(validate_date('02/30/2015')); //false mm/dd/yyyy
alert(validate_date('02/28/2015')); //true mm/dd/yyyy
|
|
20.07.2016, 20:05
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,672
|
|
рони, наверное строка 5 бесполезна?
alert(!new Date('x'));
или может так сделать
alert(new Date('x') == 'Invalid Date');
Последний раз редактировалось Rise, 20.07.2016 в 20:07.
|
|
20.07.2016, 20:10
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,103
|
|
Сообщение от Rise
|
рони, наверное строка 5 бесполезна?
|
не вижу вариантов, если str не дата вернуть false , что не так?
|
|
20.07.2016, 20:16
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,672
|
|
рони, пример когда она не дата, str - всегда объект же?
|
|
20.07.2016, 20:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,103
|
|
Валидация даты
Rise,
function validate_date(date) {
var str = date.trim().split("/");
if (str.length == 3) {
str = new Date(str[2], str[0] - 1, str[1], 0, 0, 0); alert(str)
if (!str) return false;
str = [("0" + (str.getMonth() + 1)).substr(-2), ("0" + str.getDate()).substr(-2), str.getFullYear()].join("/");
return str === date.trim()
}
return false
};
alert(validate_date('02/дд/2015')); // mm/dd/yyyy
Последний раз редактировалось рони, 14.04.2018 в 15:48.
|
|
20.07.2016, 20:23
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,672
|
|
рони, ну так false возвращается из 7-й строки а не из 5-й, в 5-ю не зайдет не когда увы.
|
|
20.07.2016, 20:40
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,103
|
|
Валидация даты
Rise,
уговорил
дополненный вариант
function validate_date(date) {
var str = date.trim().split("/");
if (str.length == 3) {
str = new Date(str[2], str[0] - 1, str[1], 0, 0, 0);
if (str == 'Invalid Date') return false;
str = [("0" + (str.getMonth() + 1)).substr(-2), ("0" + str.getDate()).substr(-2), str.getFullYear()].join("/");
return str === date.trim()
}
return false
};
alert(validate_date('02/дд/2015')); //false mm/dd/yyyy
alert(validate_date('02/30/2015')); //false mm/dd/yyyy
alert(validate_date('02/29/2016')); //true mm/dd/yyyy
Последний раз редактировалось рони, 14.04.2018 в 15:48.
|
|
20.07.2016, 20:40
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,103
|
|
Rise,
спасибо за науку!!! плюсануть не могу
|
|
21.07.2016, 11:15
|
Аспирант
|
|
Регистрация: 29.07.2014
Сообщений: 42
|
|
Я добавил алерты и кнопочку запустить, прошу проверить.
|
|
|
|