angularjs - 使用 MVC 数据注释的正则表达式日期时间

标签 angularjs regex asp.net-mvc validation

我正在混合 MVC 数据注释和 AngularJs 验证 ng-pattern。 到目前为止我所做的是这样的:

[RegularExpression("/^[0-9]{4}-[0-9]{2}-[0-9]{2} 20|21|22|23|([0-1][0-9]):[0-5][0-9]:[0-5][0-9]$/", ErrorMessage = "Date format: yyyy-mm-dd hh:mm:ss")]

如您所见,我尝试将日期格式化为:yyyy-mm-dd hh:mm:ss。 我想把时间改成24小时。 我的问题是当我输入时表单变得有效:

  • 2015-21 , 2015-22//2015-20 无效,无法理解原因
  • 2015-12-20 21//我希望用户输入分钟和秒,因为它还有 datetimepicker,这是更有用的,它设置我想要的格式

那么,为什么我的正则表达式没有按我的预期工作?

最佳答案

您的正则表达式无法按预期工作,因为您没有使用 ^ anchor (虽然我猜这个表达式是锚定的,但最好还是安全一点)并且您没有将组中的替代项,因此 212223 是有效值。

这是一个固定的表达式:

^[0-9]{4}-[0-9]{2}-[0-9]{2} (?:20|21|22|23|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$
                            ^^^                         ^^ 

参见demo

关于angularjs - 使用 MVC 数据注释的正则表达式日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30642359/

相关文章:

没有 ASP.NET 的 ASP.NET MVC?

javascript - MVVM Javascript 与传统 ASP.NET MVC 网站的可扩展性比较如何

javascript - AngularJS:计算 ng-repeat 的迭代次数

javascript - 如何使用 UI Grid 自定义字段的输出

javascript - 删除多个标点符号后面的标点符号javascript

c# - 仅在整行匹配正则表达式时才替换模式

python - 根据具有特殊条件的单词之间的逗号拆分字符串 - Python

c# - MVC WebApi 端点不适用于生产环境,但常规端点可以

javascript - 正在传递 ng-click 中必需的 $event

C# MVC网站PDF文件以字节数组形式存储,在浏览器中显示