0

我想像这样创建 DateTimeAttribute:


   public class DateTimeAttribute : RegularExpressionAttribute
    {
        public DateTimeAttribute(): base(@"\d\d.\d\d.\d\d\d\d")
        {

        }

    }

我想让我的格式:dd.mm.yyyy 它太简单了但是: ^((((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)) ))$

这太难了也不行吗?如何在我的正则表达式中解析 dd.mm.yyyy?

4

2 回答 2

1

尝试:

(0[1-9]|[12][0-9]|3[01])[\.](0[1-9]|1[012])[\.](19|20)[0-9]{2}

但这将匹配无效日期,例如 2 月 31 日。因此,无论如何您都需要检查日期的有效性。

于 2012-06-01T07:44:35.527 回答
1

你可以只使用内置属性吗?

[DataType(DataType.Date, ErrorMessage="Please enter a valid date in the format dd.mm.yyyy")] 
于 2012-06-02T01:24:57.920 回答