我刚刚学习了正则表达式,并使用正则表达式创建了一个 dd-mm-yyyy 日期验证器:
^(0[1-9]|[12][0-9]|3[01])([-/.])(0[1-9]|1[0-2])\2(19|20)\d\d$
它似乎工作正常。但我想知道是否可以进行任何改进以确保不会出现错误。有什么建议么?
我刚刚学习了正则表达式,并使用正则表达式创建了一个 dd-mm-yyyy 日期验证器:
^(0[1-9]|[12][0-9]|3[01])([-/.])(0[1-9]|1[0-2])\2(19|20)\d\d$
它似乎工作正常。但我想知道是否可以进行任何改进以确保不会出现错误。有什么建议么?
为什么要重新发明轮子。借助内置的日期解析方法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");
也许您想将moment.js包含到您的项目中?然后你可以写:
moment("not a real date").isValid(); // false
如果需要,您也可以使用自己的格式字符串。;-) 如果日期实际存在(想想 29-02-2013,它不存在),这也会给您带来好处。