jQuery / JavaScript:这是约会吗? (验证是否是日期)

时间:2011-11-08 16:46:28

标签: javascript jquery validation date datepicker

我有datepicker,但我无法找到验证用户条目是否为日期的方法以及是否遵循所需格式(格式:yyyy-mm-dd

这是我的日期选择器:

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

我查看了这个解决方案,“How to validate datepicker to forbid/reject certain dates?”。它看起来很简单,但它只检查它是否是一个周末。它没有检查用户输入的日期,随机数字或拼写错误(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”)时,它完全没用:http://jsfiddle.net/LyEvQ/1/

我需要两个都工作。你能帮忙吗

3 个答案:

答案 0 :(得分:31)

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

答案 1 :(得分:10)

这样的事情应该有效:

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 });

答案 2 :(得分:6)

使用Date.parse()方法检查日期是否有效:

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

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