-2

私の文字列形式はM/d/yyyyです。これは、月と日付の数字の前にゼロがないことを意味します。例:2012年9月23日、2012年7月9日など

私が試してみました:

^((((0?[1-9] | [12] \ d | 3 [01]).- / .- /)|((0?[1-9] | [12] \ d | 30) .- / .- /)|((0?[1-9] | 1 \ d | 2 [0-8])[.- /] 0?2 .- /)|(29 [.- /] 0 ?2 .- /))|((((0 [1-9] | [12] \ d | 3 [01])(0 [13578] | 1 [02])((1 [6-9] | [ 2-9] \ d)?\ d {2}))|((0 [1-9] | [12] \ d | 30)(0 [13456789] | 1 [012])((1 [6- 9] | [2-9] \ d)?\ d {2}))|((0 [1-9] | 1 \ d | 2 [0-8])02((1 [6-9] | [2-9] \ d)?\ d {2}))|(2902((1 [6-9] | [2-9] \ d)?(0 [48] | [2468] [048] | [13579] [26])|((16 | [2468] [048] | [3579] [26])00)| 00))))$

しかし、これはd / M/yyyy用だと思います。

M / d / yyyyの表現を持っている人はいますか?

4

3 に答える 3

7

日付が形式であるかどうかを検証しようとしている場合はM/d/yyyyDateTime.TryParseExactが正規表現よりも優れたソリューションです。何かのようなもの。

string str = "9/23/2012";
DateTime dt;
if(DateTime.TryParseExact(str,
                          "M/d/yyyy",
                          CultureInfo.InvariantCulture,
                          DateTimeStyles.None, 
                          out dt))
{
    //valid date
}
else
{
    //Invalid date
}
于 2012-11-16T07:13:18.080 に答える
1

この式を使用してみてください

^((0 [1-9])|(1 [0-2])| [1-9])/(([1-9])|(0 [1-9])|(1 [0- 9])|(2 [0-9])|(3 [0-1]))/(([0-9] {2})|([1-9] [0-9] {3}) )$

あなたはこのサイトからもっと見つけることができます

于 2012-11-16T07:18:02.737 に答える
-1

すべての返信をありがとう、あなたはすべて私を助けました。私のqnsへの表現は次のとおりです。

^([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0-9]{4}|[0-9]{2})$
于 2012-11-16T07:32:20.990 に答える