我試圖驗證以下日期格式,但我仍然沒有得到螞蟻的工作解決方案 -正則表達式通過<strong>正則表達式匹配</strong>日期
ex.-
OCT-12-2011
FEB-06-1995
我如何使用正則表達式做到這一點。
在此先感謝!
我試圖驗證以下日期格式,但我仍然沒有得到螞蟻的工作解決方案 -正則表達式通過<strong>正則表達式匹配</strong>日期
ex.-
OCT-12-2011
FEB-06-1995
我如何使用正則表達式做到這一點。
在此先感謝!
...不知道你想要做到這一點的嚴格程度。
var months = [
'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'
],
regValidate = RegExp('^(?:' + months.join('|') + ')-[0-3][0-9]-\\d{4}$');
alert(regValidate.test('OCT-12-2011'));
不要試圖非常嚴格地使用正則表達式來驗證它。檢查格式,使用這樣的事情:
[A-Z]{3}-[0-9]{2}-[0-9]{4}
然後,檢查各部分看到,部分是否有效。
根據您的要求,下面可以做:
^[A-Z]{3}-\d{2}-\d{4}$
或者更復雜的:
^(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)-(0[1-9]|[12]\d|3[01])-[12]\d{3}$
或者在:)之間的任何東西(你甚至可以進一步闡明年份部分。)
幾個月的日期通常在01-31之間,而不只是12! –
@Kerrek SB不,我只是注意到:)更正,但感謝您的注意。 – jensgram
Date JS是Google上的第一次。
全面,簡單,隱蔽,快捷。 Datejs已通過所有審判並準備罷工。 Datejs不僅解析字符串,而且將它們切成兩半。從他們的網站
示例代碼:
Date.parse('today');
Date.parse('t + 5 d'); // today + 5 days
Date.parse('next thursday');
Date.parse('February 20th 1973');
Date.parse('Thu, 1 July 2004 22:30:00');
唯一的缺點是,它改變的原型構建,在Date
對象。雖然這被認爲是一種令人沮喪的做法,但我懷疑這些特殊的補充會影響你的申請。仍然有很多網站使用Prototype沒有任何問題。
編輯:通過正則表達式解析ragarding日期值。 請特別注意,考慮到不同瀏覽器中的不同date.toString()實現。下面是new Date().toString()
遞給我:
"Mon Jul 11 14:50:45 UTC+0300 2011"
"Mon Jul 11 2011 14:51:08 GMT+0300 (FLE Daylight Time)"
如果你從服務器獲取這些字符串,你覺得添加庫只是日期爲頂你」用正則表達式會很好。
如果你想用一個正則表達式來做到這一點,你可以使用類似:
/^(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)-([012]\d|3[01])-[12]\d{3}$/
這不會JAN-01-1000之前或DEC-31-2999後匹配的日期。
注意:不要忘記檢查像FEB-30-2011
+1無效月的日期,正則表達式是絕對不驗證日期的方式,你可以嘗試一些問題的答案,但你驗證日期,而不是它的字符串表示。 –