2015-06-15 38 views
6

我有用于获取不同值的字符串字段。收到的一些值是日期。现在我需要检查收到的价值是否是约会?收到的日期可以再次采用不同的格式。如何验证字符串是否为js中的有效日期

我试过Date.parse(),它的工作原理是格式为dd-mm-yyyy hh:mm,但我收到了一些日期收到像(26/05/2015 06:20:57 +00:00)。

如何比较字符串是否有效日期?

+0

试试看moment.js(http://momentjs.com/docs/)它的一个非常强大的日期库。你将能够尝试创建一个具有任何值的日期,然后检查它是否有效 –

+1

这可能是重复的,但链接的愚蠢大多数只是依赖* Date.parse *的糟糕答案,这是非常不可靠的为随机格式。 – RobG

+2

正确解析日期字符串是至关重要的,你可以告诉解析器它是什么格式(或者提供一种你知道的**它将正确解析的格式)。否则,你可以尝试一系列不同的格式,当你得到一个“有效”的时候停止。如果年份是第一,你可以合理确定序列,但在年份最后的时候,不合逻辑的m/d/y序列的流行意味着你无法可靠地判断04/05/2010是4月4日还是4月5日。 – RobG

回答

8

如果Date.parse()是不够的,你 - 但它可能是不够的 - 看到的文档:

,那么你可以尝试:

它是一个解析,验证,操作和显示JavaScript日期的库,它具有比标准JavaScript日期处理函数更丰富的API。

另请参阅this answer了解更多库和指向教程的链接。

+1

谢谢。使用moment.js有帮助。我可以解析字符串来匹配任何我想要的格式。 – user1147738

+1

使用moment.js来验证字符串看起来不正确。是否有任何纯JavaScript解决方案? – Kira

相关问题