我正在尝试创建一个正则表达式来解析和验证Javascript中的时间范围。请记住,我只是想解析正确结构化的字符串。关于时间范围的验证逻辑是在之后进行的
要求:
我提出的是以下内容:
/((?:[01]\d:[0-5][0-9]|2[0-3]:[0-5][0-9])(?:\s?)-(?:\s?)(?:[01]\d:[0-5][0-9]|2[0-3]:[0-5][0-9])(?:\s?,\s?)?)/g
除了规则5之外似乎满足所有规则。如果存在不正确的字符,则它们根本不匹配,但表达式不会作为一个整体失败
有没有办法在这个正则表达式中嵌入规则5?
答案 0 :(得分:0)
添加锚点以标记字符串的开头和结尾:
^((?:[01]\d:[0-5][0-9]|2[0-3]:[0-5][0-9])(?:\s?)-(?:\s?)(?:[01]\d:[0-5][0-9]|2[0-3]:[0-5][0-9])(?:\s?,\s?)?)+$
(demo)
然后,抓住整个匹配,然后按,
分割。