javascript中的RegEx日期验证

时间:2013-10-07 15:03:47

标签: javascript regex

我刚刚学习了正则表达式,并使用正则表达式创建了一个dd-mm-yyyy日期验证器:

^(0[1-9]|[12][0-9]|3[01])([-/.])(0[1-9]|1[0-2])\2(19|20)\d\d$

Regular expression visualization

Debuggex Demo

似乎工作正常。但我想知道是否有任何改进可以确保没有错误。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

为什么重新发明轮子。借助内置的日期解析方法Date.parse(String),如下所示:

var timestamp = Date.parse(str); // str is your input string for data
var date = null
if (isNaN(timestamp) == false)
    date = new Date(timestamp);
else
    alert("Invalid date");

答案 1 :(得分:1)

也许您想在项目中加入moment.js?然后你可以写:

moment("not a real date").isValid(); // false

如果您愿意,也可以使用自己的格式字符串。 ;-)如果日期确实存在,这也会给你带来好处(想想2013年2月29日,这是不存在的。)