You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式实现:匹配含冒号与点号的时间(允许为空)

解决你的时间格式正则匹配需求

我来帮你搞定这个正则问题!你的核心需求是:要么匹配空字符串,要么匹配的非空字符串必须同时包含冒号(:)和点号(.),而且只能由数字、冒号、点号组成对吧?

最终正则表达式

^$|^(?=.*:)(?=.*\.)[0-9:.]+$

拆解解释

咱们把这个正则拆成两部分来看,用|(逻辑或)分隔两种合法情况:

  1. ^$:专门匹配空字符串,完美覆盖你要的空值场景。
  2. ^(?=.*:)(?=.*\.)[0-9:.]+$:处理非空的合法字符串:
    • (?=.*:):正向预查,确保字符串里至少存在一个冒号
    • (?=.*\.):另一个正向预查,确保字符串里至少存在一个点号
    • [0-9:.]+:匹配一个或多个数字、冒号、点号(限定字符范围,避免出现其他非法字符)
    • ^和$:锚定整个字符串,防止出现部分匹配的情况(比如只匹配长字符串里的一段符合要求的子串)

验证你的示例

咱们拿你给的例子测试下:

  • 空字符串:匹配 ✅
  • 5.564:没有冒号,不匹配 ❌
  • 1:23.321:同时有冒号和点号,匹配 ✅
  • 12:02.213:匹配 ✅
  • 59.999:没有冒号,不匹配 ❌

可选:更严格的时间格式匹配

如果你的场景是类似「分:秒.毫秒」这种固定格式(比如01:23.456),可以用更精准的正则:

^$|^\d{1,2}:\d{2}\.\d{3}$

这个版本会限制冒号前是1-2位数字,冒号后是两位数字,点号后是三位数字,更贴合实际的时间场景。

内容的提问来源于stack exchange,提问作者moto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:08:09