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

如何使用Regex验证符合特定规则的时间段格式字符串

时间范围格式验证方案

第一步:用正则匹配基础格式

先通过正则表达式确保字符串符合「HH:MM-HH:MM」的结构,同时满足小时在08-20之间、分钟只能是00或30:

^((0[8-9]|1[0-9]|20):(00|30))-((0[8-9]|1[0-9]|20):(00|30))$

正则各部分说明:

  • ^ 和 $:限制整个字符串必须完全匹配,不能有多余前缀/后缀
  • (0[8-9]|1[0-9]|20):匹配合法小时,覆盖08、09、10-19、20
  • :(00|30):强制分钟只能是00或30
  • -:匹配开始时间和结束时间之间的分隔符

第二步:验证开始时间早于结束时间

正则没法处理时间先后的逻辑,需要用代码辅助验证。以Python为例,写个验证函数:

import re

def check_valid_time_range(time_str):
    # 先过正则格式校验
    regex_pattern = r'^((0[8-9]|1[0-9]|20):(00|30))-((0[8-9]|1[0-9]|20):(00|30))$'
    if not re.fullmatch(regex_pattern, time_str):
        return False
    
    # 拆分时间并转成总分钟数比较
    start, end = time_str.split('-')
    
    def convert_to_minutes(time):
        hour, minute = map(int, time.split(':'))
        return hour * 60 + minute
    
    return convert_to_minutes(start) < convert_to_minutes(end)

测试案例参考

  • 合法输入:08:00-08:30、12:30-14:30
  • 非法输入:
    • 小时超出范围:07:00-09:00、21:30-22:00
    • 分钟不合法:13:15-14:00、15:45-16:00
    • 开始时间晚于结束:16:30-15:00、20:00-19:30
    • 格式错误:12:3014:30(缺分隔符)、12-30-14-30(分隔符错误)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:30:08