2011-07-31 47 views
0

誰能告訴我這將是下面的正則表達式:正則表達式

yyyy-mm-dd(space)hr:i:s 

例如,正是這種格式:

2001-07-31 22:05:00 

我必須把「正則表達式」這個reg表達式

+0

你想解析日期嗎?或者驗證它是一個日期?因爲大多數語言都支持這個庫,這比用正則表達式來檢查這個更好(如果你只想檢查valite日期,那麼正則表達式可能會填充你的屏幕) – markijbema

+0

其實我想用戶輸入一個有效的日期,所以如果有任何其他方式來實現這一點,因爲我想要這種格式,因爲我必須將此格式的值放入數據庫字段中,並輸入時間戳 – mehwish

回答

1

(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})

括號中,如果你想趕上你們的價值觀AR,一個月等

+0

9999-99-99怎麼辦? –

+0

是的,這個日期沒有任何意義。但它可能是錯誤的格式正確的數據,所以我認爲它也應該被捕獲(並在稍後驗證)。稍後將更容易驗證它並拋出錯誤,例如_不正確month_ –

0

事情是這樣的:

[12][0-9]{3}-[01][0-9]-[0-3][0-9]\s[0-2][0-9]:[0-5][0-9]:[0-5][0-9]

(與無效的輸入樣9999-99-99 99:99:99一些非常基本的驗證)

2

根據regex庫:

\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} 
+0

是的,但也允許完全瘋狂的輸入... –

+3

@Fredrik我相信regexps應該用於字符串結構驗證。邏輯應留給常規代碼,因爲使用正則表達式正確檢測所有可能的日期情況非常困難。 – Karolis

0

匹配從1900-01-01和2099年12月31日0之間

在YYYY-MM-DD格式的日期
^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$ 
+0

這不會捕獲時間 – Brad