正则表达式匹配HH:MM - HH:MM

时间:2018-03-07 13:45:13

标签: regex forms

我需要一个像以下一样工作的正则表达式:

  

HH:MM-HH:MM

我在这里找到了一个正则表达式,但这只适用于HH:MM

(^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$)

任何人都可以帮助我,因为它不是我的最大区域。我将在HTML表单中使用它。

2 个答案:

答案 0 :(得分:0)

这个问题似乎很容易回答,但不是每个人都能理解RegEx的乱七八糟的信件。我建议您在https://www.regexone.com上坐下几个小时,我觉得这对学习RegEx非常有用,并使用https://www.regex101.com来分析正则表达式。

关于你的问题,我相信这就是你要找的东西

(?:^(?:[0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]-(?:[0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$)

您可以在此DEMO

进行测试

快乐学习。

答案 1 :(得分:0)

See regex in use here

^([01]?\d|2[0-3]):([0-5]\d)-([01]?\d|2[0-3]):([0-5]\d)$
  • ([01]?\d|2[0-3])匹配0-23范围内的任何数字,允许单个或两位数(前导0)
  • :按字面意思匹配
  • ([0-5]\d)-匹配00-59
  • 范围内的任何数字
  • -按字面意思匹配
  • 重复以上操作(减去-的最后一场比赛)

使用pattern属性,您可以删除主播^$,如下面的代码段所示

<form>
  <input type=text pattern="([01]?\d|2[0-3]):([0-5]\d)-([01]?\d|2[0-3]):([0-5]\d)" placeholder="00:00-00:00">
  <input type=submit>
</form>