2012-07-23 31 views
0

我正在使用內置於我的設備中的日期選擇器,它將以YYYY/MM/DD格式返回日期 ,並以HH:MM格式24小時返回時間。JavaScript日期驗證RegEx OR JS?

整個返回的字符串是YYYY/MM/DDT/HH/MM T是分隔符。

什麼是最好的驗證方式,以便它符合格式YYYY/MM/DD/T/HH/MM 正則表達式?即使我必須在T中分割,JavaScript是否具有構建它的日期/時間驗證,所以我在單獨的變量中有日期和時間?

什麼是最好的方法/算法來做到這一點,以及明智的表現?

如果我在數組像分裂我的varible ...

[ 「YYYY/MM/DD」, 「HH:MM」]

是否有驗證這個最好的正則表達式或js函數?性能是關鍵。

感謝

+0

*「性能(原文如此)是關鍵。」*爲什麼? – 2012-07-23 11:13:23

+0

將在非常低端的設備上進行+ 30/40次 – LmC 2012-07-23 11:13:40

+0

不夠公平。你寫了*「整個返回的字符串是YYYY/MM/DDT/HH/MM T是分隔符。」*但是從你以後說什麼,我猜它實際上是'YYYY/MM/DDTHH:MM'? – 2012-07-23 11:16:04

回答

1

我不會擔心性能,你不會在緊張的循環中做這幾十萬次,大概。

A regex是一個很好的方法來做到這一點,並且會很容易編寫;如果您創建一次正則表達式並重新使用它,它也應該表現得很好。

假設您的格式的例子是一個錯字,你的意思YYYY/MM/DDTHH:MM,一個現代化的JavaScript引擎也應該使用字符串作爲參數傳遞給new Date(...)只要你改變/-(你可以很容易地通過String#replace辦)的支持。這是因爲它符合定義爲ES5一部分的pared-down ISO-8601 format。但是舊的引擎(例如IE8和更早版本)可能不支持它,你必須在你打算支持的瀏覽器上進行測試。但如果真的是YYYY/MM/DDT/HH/MM,請忽略此段落。