我有这个正则表达式
^(1 [0-2] | 0 [1-9]):[0-5] [0-9] \ 040(AM | AM | PM |时)$
并验证此时间格式:joinedload
,例如hh:mm AM|am|PM|pm
,04:25 pm
如何使11:20 am
(4:25 pm
之前没有0
)也有效?换句话说,除了4
之外,make h:mm
是有效的时间格式
请解释一下,我可以理解你的所作所为。谢谢!
答案 0 :(得分:1)
这是在MVC应用程序中编写DateTime验证的非正则表达方式:
[Required(ErrorMessage = "This value is required!")]
[MyValidateTime]
public string TimeValue { get; set; }
以下是MyValidateTime
代码:
public class MyValidateTime: ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
DateTime dt;
if (DateTime.TryParseExact((string)value, new[] { "hh:mm tt", "h:mm tt" }, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
return ValidationResult.Success;
else
return new ValidationResult("Correct time formats: 01:00 AM or 1:00 AM");
}
}
此处,允许的时间格式为:
查看更多DateTime formats at Custom Date and Time Format Strings MSDN page