2

我目前正在制作一个注册系统,我想要类似 [Required](属性?)的东西来检查输入字符串是否采用正确的时间格式(18:00、20:00、1:00 等),我怎么做?它有一个功能还是必须手动完成?谢谢。

4

4 回答 4

2

您可以使用RegularExpressionAttribute以下正则表达式:

^([01]?\d|2[0-3]):[0-5]\d$

正则表达式可视化

调试演示

于 2014-05-05T08:06:16.757 回答
1

我会建议这样的方法:

public bool IsValidTime(string time)
{
    DateTime dummyDate;
    return DateTime.TryParseExact(time, new[] { "HH:mm", "H:mm" }, 
        CultureInfo.InvariantCulture, 
        DateTimeStyles.NoCurrentDateDefault, out dummyDate);
}

此方法使用 1 位或 2 位数字小时数验证 24 小时制时钟格式。

它使用提供的输入给出以下结果:

"00:00"  => true
"20:00"  => true
"26:00"  => false
"1:00"   => true
"10:5"   => false
于 2014-05-05T08:15:41.347 回答
1

您可以使用RegularExpressionas 验证属性:

[RegularExpression(@"^([0-1]\d|2[0-3]):([0-5]\d)$", ErrorMessage = "invalid date format")]

正则表达式在这里找到:.NET Regular expression for time 24 hr format

于 2014-05-05T08:07:21.620 回答
0

使用 TimeSpan.TryParse 将时间间隔的字符串表示形式转换为其等效的 TimeSpan 并返回一个指示转换是否成功的值http://msdn.microsoft.com/en-us/library/3z48198e(v=vs.110) .aspx

于 2014-05-05T08:00:30.853 回答