2010-02-03 168 views
2

如何使用Javascript驗證特定格式的日期字符串? 我有一個日期選擇器,其顯示格式爲「dddd MMMM dd,yyyy」(顯示如下:「2010年2月3日星期三」。)所以我必須使用javascript驗證此格式。請幫助我實現此目的。Javascript日期驗證

+0

您是否嘗試過在網頁上搜索與使用JavaScript驗證日期相關的頁面? – Lazarus 2010-02-03 12:08:06

回答

4

如果你想檢查正是該格式,你可以使用正則表達式:

var re = new RegExp('^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)\\s*(January|February|March|April|May|June|July|August|September|November|December)\\s*(\\d\\d),\\s*(\\d{2,4})$'); 

var date = 'Wednesday February 03, 2010'; 
if ((match = date.match(re)) != null) 
{ // valid 
    alert(match); 
} 

或者,如果你只需要知道,如果它是一個有效的日期,什麼格式以往,只需將其轉換:

var dateSec, dateObj, dateStr = 'Wednesday February 03, 2010'; 
dateSec = Date.parse(dateStr); // unix timestamp 
if (dateSec) // not NaN 
    dateObj = new Date(dateSec); // date object 
0

對日期格式和驗證的本地JavaScript支持有所限制。

看看http://www.datejs.com/

如果您的應用程序將需要日期操作方法,你可以做的東西一樣Date.parse(「我的日期字符串」)

3

,你可能要考慮使用的東西像Datejs庫。

如果您選擇Datejs,則可以使用parseExact()方法進行驗證。如果日期有效,它將返回一個日期對象;如果日期無效,則返回null。

0

Datejs或Dojo可以做到這一點。隨着dojo.date.locale.parse

var dateAsString = "Wednesday February 03, 2010"; 
var dateObject = dojo.date.locale.parse(dateAsString, {datePattern: "EEEE MMMM dd, yyyy", selector: "date", locale: "en"}); 

dateObject將包含Date對象,或者爲空,如果字符串不與指定模式相匹配。這可以使用固定語言或任何本地語言。

雖然日期選擇器將它用作序列化日期格式似乎不太合適。它應該使用更容易解析的東西,如ISO8601 representation