我正在尝试验证使用日期时间选择器设置日期和时间的输入字段。如何将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>
答案 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])
答案 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