Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 20.07.2016, 19:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

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
Ответить с цитированием
  #22 (permalink)  
Старый 20.07.2016, 20:05
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

рони, наверное строка 5 бесполезна?
alert(!new Date('x'));

или может так сделать
alert(new Date('x') == 'Invalid Date');

Последний раз редактировалось Rise, 20.07.2016 в 20:07.
Ответить с цитированием
  #23 (permalink)  
Старый 20.07.2016, 20:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Rise
рони, наверное строка 5 бесполезна?
не вижу вариантов, если str не дата вернуть false , что не так?
Ответить с цитированием
  #24 (permalink)  
Старый 20.07.2016, 20:16
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

рони, пример когда она не дата, str - всегда объект же?
Ответить с цитированием
  #25 (permalink)  
Старый 20.07.2016, 20:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Валидация даты
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.
Ответить с цитированием
  #26 (permalink)  
Старый 20.07.2016, 20:23
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

рони, ну так false возвращается из 7-й строки а не из 5-й, в 5-ю не зайдет не когда увы.
Ответить с цитированием
  #27 (permalink)  
Старый 20.07.2016, 20:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Валидация даты
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.
Ответить с цитированием
  #28 (permalink)  
Старый 20.07.2016, 20:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Rise,
спасибо за науку!!! плюсануть не могу
Ответить с цитированием
  #29 (permalink)  
Старый 21.07.2016, 11:15
Аспирант
Отправить личное сообщение для Master_Sergius Посмотреть профиль Найти все сообщения от Master_Sergius
 
Регистрация: 29.07.2014
Сообщений: 42

Я добавил алерты и кнопочку запустить, прошу проверить.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск