Regex 带有可选冒号的时间戳上的正则表达式

Regex 带有可选冒号的时间戳上的正则表达式,regex,regex-group,Regex,Regex Group,大家好我需要帮助在regex中制作解决方案我有这个regex: /^([0-9][0-9]|[0-9][0-9][0-9]):[0-5][0-9][:]\?$/ 作为一个用户,我可以使用28:30或28或100:30或100当我添加冒号时,我的正则表达式工作得很好,但当我想删除冒号并简单地使用28或100时,请帮助我。你可以使用正则表达式 \d{2,3}(:[0-5]\d)? 请参见仅2或3位数字,后面可能跟有:和2位数字?这个可以:(\d{2,3})(:\d{2})?注意,您可以使用非捕

大家好我需要帮助在regex中制作解决方案我有这个regex:

/^([0-9][0-9]|[0-9][0-9][0-9]):[0-5][0-9][:]\?$/ 
作为一个用户,我可以使用
28:30
28
100:30
100
当我添加冒号时,我的正则表达式工作得很好,但当我想删除冒号并简单地使用
28
100
时,请帮助我。

你可以使用正则表达式

\d{2,3}(:[0-5]\d)?

请参见

仅2或3位数字,后面可能跟有:和2位数字?这个可以:(\d{2,3})(:\d{2})?注意,您可以使用非捕获组将
量词应用于可选部分。如果两个部分都需要单独检索,
(\d{2,3})(?:([0-5]\d])?
将是可行的,但是使用正则表达式而不捕获组,只将结果拆分为
将更有效率。根据您给出的答案,它可以工作,我做了一些需要的更改,我使用了^\d{1,3}:?[0-5][0-9]$当我使用simple 100时,它正在做什么?当我使用simple 100时,它工作正常;当我使用添加时,它会显示错误,直到我添加我想要的分钟数,问题是当我使用简单的两位数值(20)时它显示错误,不应该像我们加100时那样,它不显示错误,同样在100后我们使用冒号,它显示错误,直到我们加上分钟。@Aaron你的解决方案对我很有效,对这两个方面都很好help@azim呃,我的建议没有考虑到这一点,而且你甚至不能用正则表达式来做这件事(因为我想你也不想接受
100:
作为最终值)。它应该用JS或任何你用来验证字段的东西来处理(在验证时配置一些宽松措施)