我刚刚学习了正则表达式,并使用正则表达式创建了一个dd-mm-yyyy日期验证器:
^(0[1-9]|[12][0-9]|3[01])([-/.])(0[1-9]|1[0-2])\2(19|20)\d\d$
似乎工作正常。但我想知道是否有任何改进可以确保没有错误。有什么建议吗?
答案 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日,这是不存在的。)