我正在尝试对基于时间的文本框进行验证。我需要这样的格式。
00:00:00:00
(天:小时:分钟:秒
)。
有效时间为 99:23:59:59、01:01:01:01、25:00:20:55
、
无效时间为99:24:60:60、99:2:1:1
我对正则表达式了解不多。那么任何人都可以帮助我构建一个与我的场景匹配的正则表达式吗?
最佳答案
尝试这个模式,
^\d{2}:([0-1]\d|2[0-3]):([0-5]\d):([0-5]\d)$
简要说明:
- 在行的开头断言位置(在字符串的开头或换行符之后)
^
- 匹配单个数字 0..9
\d{2}
- 正好 2 次
{2}
- 正好 2 次
- 按字面意思匹配字符“:”
:
- 匹配下面的正则表达式并将其匹配捕获到反向引用编号 1
([0-1]\d|2[0-3])
- 匹配下面的正则表达式(仅当此选项失败时才尝试下一个选项)
[0-1]\d
- 匹配“0”和“1”之间的单个字符
[0-1]
- 匹配单个数字 0..9
\d
- 匹配“0”和“1”之间的单个字符
- 或者匹配下面的正则表达式 2(如果该正则表达式匹配失败,则整个组失败)
2[0-3]
- 按字面意思匹配字符“2”
2
- 匹配“0”和“3”之间的单个字符
[0-3]
- 按字面意思匹配字符“2”
- 匹配下面的正则表达式(仅当此选项失败时才尝试下一个选项)
- 按字面意思匹配字符“:”
:
- 匹配下面的正则表达式并将其匹配捕获到反向引用编号 2
([0-5]\d)
- 匹配“0”和“5”之间的单个字符 «[0-5]»
- 匹配单个数字 0..9
\d
- 按字面意思匹配字符“:”
:
- 匹配下面的正则表达式并将其匹配捕获到反向引用编号 3 «([0-5]\d)»
- 匹配“0”和“5”之间的单个字符
[0-5]
- 匹配单个数字 0..9
\d
- 匹配“0”和“5”之间的单个字符
- 在行尾断言位置(在字符串末尾或换行符之前)
$
关于javascript - 时间格式的正则表达式,如 DD :HH:MM:SS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18438023/