2012-01-19 47 views
0

我想寫一個正則表達式在c# 將檢查日期(DD/MM/YYYY)。正則表達式生日的日期時間

任何日期(01/01/0000)或(12/12/9999)都可以。 當天時間必須從01-12, 當月時間必須從01-12, 年時間必須從0000-9999 之間,它們之間必須是「/」。

+1

你的RegEx會如何迴應'29/02/2012'?只需使用'DateTime.TrParse()' –

+7

您需要的答案位於谷歌搜索的第一頁。 http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5 – David

+1

請勿爲此使用RegEx。使用內置的解析器。 – mydogisbox

回答

2
^([012]\d|30|31)/(0\d|10|11|12)/\d{4}$ 

應該這樣做!

3

我可以建議使用DateTime.TryParse嗎?取決於用戶所在的位置,日期格式應該不同(dd/mm vs mm/dd)。當有穩定的,經過測試的現有代碼來完成這項工作時,正則表達式並不是很好。

6

我試圖寫在C#中的正則表達式,將檢查日期

不,你不需要寫一個正則表達式來檢查的日期。這將是一個矯枉過正的問題。您可以使用DateTime.TryParseExact方法。

DateTime date; 
string someDateToCheck = "12/12/9999"; 
if (DateTime.TryParseExact(someDateToCheck, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date)) 
{ 
    // the date was successfully parsed. You can use the date instance here 
} 
+0

矯枉過正或動力不足(閏日)? –