Подтвердить что ты не робот

JQuery/JavaScript: это дата? (Подтвердить, является ли дата)

У меня есть datepicker, но я не мог найти способ проверить, является ли запись пользователя датой или нет. И если она соответствует требуемому формату (format: yyyy-mm-dd)

Это мой датпикер:

$("input[name='date']").datepicker({ dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, numberOfMonths: 3, showButtonPanel: true});

Я просмотрел это решение, Как проверить датупинг, чтобы запретить или отклонить определенные даты?". Он выглядит достаточно простым, но он проверяет только выходные. Он не проверяет, что пользователь вводил дату, случайное число или опечатку (1231.... 30-30-2011... 30/30/2011... 212-565-565... и т.д.)..

Пожалуйста, возитесь со своей скрипкой: http://jsfiddle.net/MDa4A/




Дополнительная информация (11-10-2011):
(Попробуйте эти jsFiddles и введите 0-0-0 или 0/0/0)

Я использовал ваши ответы, чтобы придумать решение. Он работает, когда я использую формат "yy-mm-dd" : http://jsfiddle.net/LyEvQ/

НО это совершенно бесполезно, когда я использую другой формат (Ej.: "mm/dd/yy" ): <а3 >

Мне нужно, чтобы оба работали. Не могли бы вы помочь?

4b9b3361

Ответ 1

if (Date.parse("some string")) {
   //Valid date
} else {
  //Not a valid date
}

Ответ 2

Что-то вроде этого должно работать:

jQuery.validator.addMethod("customDateValidator",
    function(value, element) {
        try { jQuery.datepicker.parseDate("mm/dd/yyyy", value); return true; }
        catch(e) { 
            return false;
        }
    },
    "Please enter a valid date"
);

$("input[name='date']").rules("add", { customDateValidator:true });

Ответ 3

Используйте метод Date.parse(), чтобы проверить, действительна ли дата:

var timestamp = Date.parse($("input[name='date']").val()) 

if (isNaN(timestamp) == false) { 
    var d = new Date(timestamp); 
}