我正在混合 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 (虽然我猜这个表达式是锚定的,但最好还是安全一点)并且您没有将组中的替代项,因此 21
、22
、23
是有效值。
这是一个固定的表达式:
^[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/