JavaScript中的出生日期验证?

时间:2012-05-22 05:40:24

标签: javascript

我在HTML中的文本框中有一个如12-08-1989的出生日期。我想验证用户在javascript中必须是18岁。

我在javascript中使用了Date函数,但似乎它接受YYYY-MM-DD格式,但我想在DD-MM-YYYY中验证。

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:2)

var pattern =/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/;
if(pattern.test(str_input_date))
{
     alert("valid date");
}

这应该给你一个开始。 :)

答案 1 :(得分:1)

您应该使用一些验证框架,例如jQuery.validation。这是处理代码验证的更一致的方法。如果这是您应用中唯一经过验证的字段,您当然可以使用上面提供的天真实现。

您是否需要一些高级日期验证规则,您可以使用JS日期框架,例如Moment.js(或Date.js,这在目前已经过时了。)

答案 2 :(得分:0)

您可以使用日期类,就像这样

try{
    var x=new Date('1/1/2001');
    var Cnow=new Date();//current Date
    if(Cnow.getFullYear()- x.getFullYear()<18){
    alert('not old enough');
    }
    else{
      //success !!!
    }

}
catch(ejs){alert('invalid')}

答案 3 :(得分:0)

“我在javascript中使用了Date函数,但似乎它接受了YYYY-MM-DD格式,但我想在DD-MM-YYYY中验证”

您可以通过分别传递年,月,日(以及可选的小时,分​​钟,秒和毫秒)值来创建Date对象:

var aDate = new Date(2012, 5, 22);

因此,如果您使用正则表达式或其他字符串方法从用户输入的内容中提取部分,则可以从DD-MM-YYYY(或其他任何)格式创建日期。

如果用户年满18岁,我测试的方式是在他们的出生日期增加18年,看看是否在今天或之前:

aDate.setFullYear( aDate.getFullYear() + 18 )

Date对象上可用的各种方法是listed at MDN

相关问题