0

我正在尝试找到正确的正则表达式(用于 Java 和 JavaScript)来验证一系列星期几和 24 小时时间格式。我想出了时间格式,但正在努力想出完整的解决方案。

正则表达式需要验证包含以下一项或多项的模式,以逗号分隔。

{两字日} HH:MM-HH:MM

有效字符串的三个示例是:

M 5:30-7:00
M 5:30-7:00, T 5:30-7:00, W 18:00-19:30
F 12:00-14:30, Sa 6:45-8:15, Su 6:45-8:15
4

6 回答 6

1

这应该验证 24 小时制:

/^((M|T|W|Th|Fr|Sa|Su) ([01]?[0-9]|2[0-3]):[0-5][0-9]-([01]?[0-9]|2[0-3]):[0-5][0-9](, )?)+$/

时间位归功于mkyonghttp ://www.mkyong.com/regular-expressions/how-to-validate-time-in-24-hours-format-with-regular-expression/

于 2013-03-29T16:00:52.960 回答
0

你可以试试这个

[A-Za-z]{1,2}[ ]\d+:\d+-\d+:\d+
于 2013-03-29T15:50:54.797 回答
0

这应该可以解决问题:

^(M|Tu|W|Th|F|Sa|Su) \d{1,2}:\d{2}-\d{1,2}:\d{2}(, (M|Tu|W|Th|F|Sa|Su) \d{1,2}:\d{2}-\d{1,2}:\d{2})*$

请注意,您T在上面的示例中显示的是模棱两可的。您可能想要强制执行TuTh如我的正则表达式所示。

于 2013-03-29T15:57:42.490 回答
0

这将捕获数组中的所有集合。一周中短日列表中的 T 是有争议的(星期二还是星期四?)。

^((?:[MTWFS]|Tu|Th|Sa|Su)\s(?:[0-9]{1,2}:[0-9]{2})-(?:[0-9]{1,2}:[0-9]{2})(?:,\s)?)+$

(?:) 是非捕获组,因此您的实际匹配将是(例如):

  • 下午 5:30-7:00
  • 时间 5:30-7:00
  • 西 18:00-19:30

但是整条线都会验证。

为行边界和显式时间-时间匹配添加了 ^ 和 $,因为某些正则表达式解析器可能无法使用我以前的方式。

于 2013-03-29T15:59:10.983 回答
0

你可以试试这个:([MTWFS][ouehra]?) ([0-9]|[1-2][0-9]):([0-6][0-9])-([0-9]|[1-2][0-9]):([0-6][0-9])

于 2013-03-29T16:00:58.083 回答
0

我会这样做:

(((M|T(u|h)|W|F|S(a|u)) ((1*\d)|(2[0-3])):[1-5]\d-((1*\d)|(2[0-3])):[1-5]\d(, )?)+
于 2013-03-29T16:01:07.747 回答