我正在尝试找到正确的正则表达式(用于 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
我正在尝试找到正确的正则表达式(用于 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
这应该验证 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](, )?)+$/
时间位归功于mkyong
:http ://www.mkyong.com/regular-expressions/how-to-validate-time-in-24-hours-format-with-regular-expression/
你可以试试这个
[A-Za-z]{1,2}[ ]\d+:\d+-\d+:\d+
这应该可以解决问题:
^(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
在上面的示例中显示的是模棱两可的。您可能想要强制执行Tu
,Th
如我的正则表达式所示。
这将捕获数组中的所有集合。一周中短日列表中的 T 是有争议的(星期二还是星期四?)。
^((?:[MTWFS]|Tu|Th|Sa|Su)\s(?:[0-9]{1,2}:[0-9]{2})-(?:[0-9]{1,2}:[0-9]{2})(?:,\s)?)+$
(?:) 是非捕获组,因此您的实际匹配将是(例如):
但是整条线都会验证。
为行边界和显式时间-时间匹配添加了 ^ 和 $,因为某些正则表达式解析器可能无法使用我以前的方式。
你可以试试这个:([MTWFS][ouehra]?) ([0-9]|[1-2][0-9]):([0-6][0-9])-([0-9]|[1-2][0-9]):([0-6][0-9])
我会这样做:
(((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(, )?)+