【问题标题】:Regex pattern for date and hour日期和小时的正则表达式模式
【发布时间】:2015-06-21 18:05:28
【问题描述】:

我想使用正则表达式来验证 JSF 中的文本字段。有人可以告诉我小时(hh:mm)和日期(dd / mm / yyyy)的模式。我尝试了以下模式,但一无所知。

<f:validateRegex pattern="[0-9][0-9]:[0-9][0-9]" />
<f:validateRegex pattern="[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]" />

【问题讨论】:

    标签: regex date time


    【解决方案1】:

    要将hh:mm00:00 匹配到23:59,您可以使用:

    <f:validateRegex pattern="(?:2[0-3]|[01][0-9]):[0-5][0-9]" />
    

    【讨论】:

      【解决方案2】:

      这是相当正确的,但您可以调整一些东西以使其更真实。

      [0-2]?[0-9]:[0-5][0-9]”在时间上会更现实,因为没有 32:79 等等。此外,第一个可以是可选的,以使 8:00 可行。

      [0-3]?[0-9]\/[0-1]?[0-9]\/[1-2][0-9][0-9][0-9] 表示日期,因为不能有 4 月 42 日,依此类推。另外,将“/”转义,可以将其视为分隔符。

      请注意,这仍然是不完美的,因为“4 月 39 日”是可行的等等。您可以编写更长更困难的正则表达式来避免这种情况,但最好使用内置函数或为此创建自己的函数来评估变量的每个部分。

      例如,2 月有 28 天,2 月 30 日不是一个可行的日期,但正则表达式不是处理这些情况的最佳工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-26
        • 1970-01-01
        • 1970-01-01
        • 2019-01-07
        • 1970-01-01
        • 2017-05-13
        • 1970-01-01
        • 2020-08-11
        相关资源
        最近更新 更多