2012-01-19 17 views
0

日付(DD/MM/YYYY)をチェックする正規表現をC# に書き込もうとしています。正規表現誕生日の日付時刻

日付(01/01/01)または(12/12/9999)も問題ありません。 日時は01-12の間でなければなりません。 月の時刻は01-12でなければなりません。 年の時刻は0000-9999 でなければなりません。その間は「/」でなければなりません。

+1

あなたのRegExは '29/02/2012'にどのように反応しますか? 'DateTime.TrParse()'を使用するだけです –

+7

あなたの希望する答えは、Google検索の最初のページにあります。 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

オーバーキルまたはパワーダウン(うるう日)? –