【问题标题】:regex for validating time in asp.net [duplicate]用于在 asp.net 中验证时间的正则表达式 [重复]
【发布时间】:2012-11-14 07:29:46
【问题描述】:

可能重复:
Regular expression to validate valid time

我编写这段代码是为了在 asp.net 中验证时间 *

如果我使用 "[0-9]?[0-9]+:[0-9]+[0-9]+:[0-9]+[0-9]+" 会出现什么错误对于 hh:mm:ss 格式。它适用于所有情况吗?

【问题讨论】:

  • 它并非在所有情况下都有效,您缺少文化信息。如果您知道日期/时间始终处于相同的文化中,它将起作用。

标签: c# asp.net


【解决方案1】:

您可以使用TimeSpan.TryParse 而不是正则表达式来解析字符串,看看您是否得到truefalse

TimeSpan tempTimeSpan;
if (TimeSpan.TryParse("12:22:33", out tempTimeSpan))
{
    //valid time
}
else
{
    //Invalid time
}

【讨论】:

  • 用户在文本框中输入值我正在尝试使用正则表达式验证它
  • 为什么是正则表达式?如果格式不同,则可以使用TimeSpan.TryParseExact与格式。
  • 并非在所有情况下都有效,您缺少文化信息。如果您知道日期/时间始终处于相同的文化中,它将起作用
【解决方案2】:

下面的正则表达式代码 sn-p 可能有助于验证日期和时间。这也照顾闰年。

^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(? =.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][ 26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]| 1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2 -9]\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0- 5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2}) ?$

【讨论】:

    猜你喜欢
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多