如何添加小时和分钟到日期模式?

时间:2019-04-05 08:49:51

标签: html regex validation

我正在尝试验证使用日期时间选择器设置日期和时间的输入字段。如何将h:m添加到字段模式中,就像dd.mm.yyyy hh:ii一样?

<form method="post">
  <input type="text" name="startDate" id="sDate" placeholder="Insert date..." pattern="(0[1-9]|1[0-9]|2[0-9]|3[01]).(0[1-9]|1[012]).[0-9]{4}">
  <input type="submit" name="search" id="search" value="Search">
</form>

3 个答案:

答案 0 :(得分:2)

HTML <input />上的pattern属性接受一个正则表达式。因此,需要为dd.mm.yyyy hh:ii创建一个正则表达式。例如,一个非常基本的条件是(不检查该月份是否在01到12之间):

[0-9]{2}\.[0-9]{2}\.[0-9]{4} [0-9]{2}:[0-9]{2}

请参阅w3schools' tryit

编辑:请注意转义的时间段。这些是必要的。请参阅@glhr的答案,以强制执行字段的有效数字(例如,mm为01-12)。

答案 1 :(得分:1)

假设您希望捕获组中日期/时间的每个部分:

(0[1-9]|1[0-9]|2[0-9]|3[01])\.(0[1-9]|1[012])\.([0-9]{4}) ([0-1][0-9]|2[0-3]):([0-5][0-9])

演示:https://regex101.com/r/XkTfwo/11

缩短了日期部分:

(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.([0-9]{4}) ([0-1][0-9]|2[0-3]):([0-5][0-9])

https://regex101.com/r/XkTfwo/12

答案 2 :(得分:1)

以下应做:

(0[1-9]|[12][0-9]|3[0-1])\.(0[1-9]|1[0-2])\.([0-9]{4}) ([0-1][0-9]|2[0-3]):([0-5][0-9])

您可以在这里尝试:https://regex101.com/r/XkTfwo/10