[英]Javascript Date Validation
如何使用JavaScript驗證特定格式的日期字符串? 我有一個日期選擇器,其顯示格式為“ dddd MMMM dd,yyyy”(顯示如下:“ Wednesday February 03,2010”。)因此,我必須使用JavaScript驗證此格式。 請幫助我實施此操作。
如果要精確檢查該格式,可以使用正則表達式:
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
如果您的應用程序需要日期處理方法,則可能要考慮使用類似Datejs庫的方法。
如果選擇Datejs,則可以使用parseExact()方法進行驗證。 如果日期有效,它將返回一個日期對象;如果日期無效,則返回null。
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對象;如果字符串與指定的模式不匹配,則為null。 這可以與固定語言或任何本地語言一起使用。
但是,日期選擇器將其用作序列化的Date格式似乎並不正確。 它應該使用易於解析的內容,例如ISO8601表示形式 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.