将regex修改为除hh:mm以外的h:mm时间格式
本文关键字:mm 时间 格式 regex hh 修改 | 更新日期: 2023-09-27 18:13:10
我有这个正则表达式
^(1(0 - 2) | 0[1 - 9]):[0 - 5][0 - 9] ' 040美元(是|是|点|点)
,它验证了这个时间格式:hh:mm AM|am|PM|pm
,例如04:25 pm
, 11:20 am
如何使4:25 pm
(4
之前没有0
)也有效?换句话说,除了hh:mm
之外,h:mm
也是有效的时间格式请解释一下,这样我才能明白你在做什么。谢谢!
试试这个:
^([1-9]|1[0-2]|0[1-9]):[0-5][0-9]'040(AM|am|PM|pm)$
这是一个在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");
}
}
这里,允许的时间格式为:
- hh: mm tt (凌晨01:00)
- h: mm tt (上午一点)
查看更多日期时间格式自定义日期和时间格式字符串 MSDN页面