我是新來的正則表達式,我想知道如果有人可以幫助。我甚至不確定Regex是否是我嘗試做的最好的選擇。各種日期格式的正則表達式
我有一個字符串數組,我正在翻閱。我想找到匹配各種日期格式的數組中的所有項目。以下是我試圖匹配的示例格式。
2012年4月1日 - 短月份名稱與沒有在第一天領先的零 - 比賽
2012年4月1日 - 與天領先的零短月份名稱 - 比賽
2012年4月1日 - 全文有沒有在第一天領先的零一個月名稱 - 比賽
2012年4月01 - 全文月份名稱與天領先的零 - 比賽
2012/4/1 - 上月和日無前導零 - 匹配
04/01/2012 - 上月和日前導零 - 匹配
2012年2月29日 - 如果今年是一個飛躍,讓2/29 - 匹配
13/12/2001 - 月外面1-12 - 不匹配
二零一二年二月三十零日 - 太多天在一個月 - 不匹配
2011年2月29日 - 如果不是閏年 - 不匹配
當前正則表達式我已經開發出來了。
\b(?:(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May?|Jun(?:e)?|Jul(?:y) |Aug(?:ust)?|Sep(?:t(?:ember)?)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?))|(0?[1-9]|1[012])[- /.,](0?[1-9]|1[0-9]|2[0-9]|3[01])
我可以開發正則表達式來detech每種格式的各個部分,但連接在一起的,這樣我就只能得到一個匹配。目前它匹配兩次(月,月+日)。我只希望它匹配整場比賽的時候。
感謝
jlimited
試試['DateJS'(http://www.datejs.com/) – diEcho 2012-07-17 04:56:57
使用''RegEx''你會比一些日期字符串,但你永遠無法創建一個''純正規模式''來驗證日期字段。你可能會贏得一場戰爭而不是戰爭!假設「閏年問題」。 – Cylian 2012-07-17 05:05:41