1

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

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

正则表达式可视化

调试演示

它似乎工作正常。但我想知道是否可以进行任何改进以确保不会出现错误。有什么建议么?

4

2 回答 2

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");
于 2013-10-07T15:09:32.727 回答
1

也许您想将moment.js包含到您的项目中?然后你可以写:

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

如果需要,您也可以使用自己的格式字符串。;-) 如果日期实际存在(想想 29-02-2013,它不存在),这也会给您带来好处。

于 2013-10-07T15:09:15.107 回答