正则表达式匹配时间范围

尼科斯·卡洛格里迪斯(Nikos Kalogridis)

我正在尝试创建一个正则表达式来解析和验证Javascript中的时间范围。请记住,我只是想解析正确构造的字符串。随后进行关于时间范围的验证逻辑

要求:

  1. 时间元素始终以24小时表示,并且应采用(HH:mm)格式。
  2. 时间范围定义为2个时间元素,以短划线分隔
  3. 字符串至少应具有一个或多个时间范围,并以逗号分隔
  4. 匹配模式应容许元素之间的间隔
  5. 经过验证的字符串应该整体匹配,或者完全不匹配

我想到的是以下内容:

/((?:[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嵌入此正则表达式中?

维克多·史翠比维

添加锚点以标记字符串的开始和结束:

^((?:[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?)?)+$演示

然后,抓住整个比赛,然后除以,

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配时间范围

来自分类Dev

匹配范围的正则表达式

来自分类Dev

正则表达式以匹配时间范围00:00:00

来自分类Dev

使用正则表达式匹配除时间范围以外的所有内容

来自分类Dev

使用正则表达式匹配除时间范围以外的所有内容

来自分类Dev

正则表达式以匹配金额范围

来自分类Dev

正则表达式-与可选范围匹配的数字

来自分类Dev

Perl正则表达式匹配范围太广

来自分类Dev

正则表达式使用间隔匹配(精确或范围)

来自分类Dev

正则表达式以匹配日期范围(包括月份)

来自分类Dev

正则表达式匹配范围内

来自分类Dev

Perl正则表达式匹配范围太广

来自分类Dev

正则表达式以匹配金额范围

来自分类Dev

如何从正则表达式匹配中获取范围

来自分类Dev

正则表达式的时间范围太远了

来自分类Dev

正则表达式以匹配日期和时间

来自分类Dev

正则表达式以秒为单位匹配时间

来自分类Dev

正则表达式以秒为单位匹配时间

来自分类Dev

匹配时间戳的正则表达式

来自分类Dev

C# 正则表达式匹配时间

来自分类Dev

用正则表达式匹配数字范围表达式

来自分类Dev

正则表达式以匹配涉及上午/下午的时间范围,例如上午7点至晚上10点

来自分类Dev

页面范围的正则表达式

来自分类Dev

正则表达式范围与backref

来自分类Dev

正则表达式范围与backref

来自分类Dev

Bash正则表达式,范围

来自分类Dev

正则表达式替换范围

来自分类Dev

表达式不匹配正则表达式

来自分类Dev

正则表达式匹配纠结的表达式