我正在尝试找到正确的正则表达式(用于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
答案 0 :(得分: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](, )?)+$/
时区的信用额转到mkyong
:http://www.mkyong.com/regular-expressions/how-to-validate-time-in-24-hours-format-with-regular-expression/
答案 1 :(得分:0)
你可以试试这个
[A-Za-z]{1,2}[ ]\d+:\d+-\d+:\d+
答案 2 :(得分: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
不明确。您可能希望强制执行Tu
和Th
,如我的正则表达式中所示。
答案 3 :(得分:0)
这将捕获数组中的所有集合。周短日内的T值是值得商榷的(周二或周四?)。
^((?:[MTWFS]|Tu|Th|Sa|Su)\s(?:[0-9]{1,2}:[0-9]{2})-(?:[0-9]{1,2}:[0-9]{2})(?:,\s)?)+$
(?:)是非捕获组,因此您的实际匹配将是(例如):
但整条生产线都将验证。
为行边界添加了^和$以及显式的时间 - 时间匹配,因为一些正则表达式解析器可能无法使用我以前的方式。
答案 4 :(得分:0)
你可以试试这个:([MTWFS][ouehra]?) ([0-9]|[1-2][0-9]):([0-6][0-9])-([0-9]|[1-2][0-9]):([0-6][0-9])
答案 5 :(得分: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(, )?)+