【问题标题】:how to parse dd.mm.yyyy format RegularExpressionAttribute MVC'sDataAnnotations?如何解析dd.mm.yyyy格式RegularExpressionAttribute MVC的DataAnnotations?
【发布时间】:2012-06-01 07:35:15
【问题描述】:

我想像这样创建 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?

【问题讨论】:

  • “不工作”是什么意思? “它根本没有验证”,“它接受非法值”,“它拒绝合法值”,还有别的吗?请详细说明。

标签: c# regex asp.net-mvc model-view-controller data-annotations


【解决方案1】:

试试:

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

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

【讨论】:

    【解决方案2】:

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

    [DataType(DataType.Date, ErrorMessage="Please enter a valid date in the format dd.mm.yyyy")] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多