2015-06-15 39 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

相關問題