我需要一个正则表达式来验证时间格式 HH:MM:SS:mm [重复]

Posted

技术标签:

【中文标题】我需要一个正则表达式来验证时间格式 HH:MM:SS:mm [重复]【英文标题】:I need a RegEx for validationg a time format HH:MM:SS:mm [duplicate] 【发布时间】:2013-10-12 10:59:23 【问题描述】:

我想检查表单中的输入以验证此格式。

我使用这个 RegEx,但它不像我想要的那样工作(采用这种格式 HH:MM:SS:mm)

HH:小时 MM:分钟 SS:秒 mm : 毫秒

/^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(?:\\.([0-9]1,3))?$/i

我已经使用 jquery 验证插件来测试表单,这是我创建的方法示例,包括这个 RegEx:

$.validator.addMethod("timeFormat", function(value, element)   
                return this.optional(element) || /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(?:\\.([0-9]1,3))?$/i.test(value);  
            , "");

这有什么问题?

【问题讨论】:

这是一个非常简单的正则表达式。您要求我们为您编写它的事实表明,即使是最简单的正则表达式介绍教程,您也懒得阅读,并且没有表现出要求我们提供代码所需的“最低限度的理解”。 不,只是我不知道如何使它正确,我已经测试过这个 /^([01][0-9]|2[0-3]):( [0-5][0-9]):([0-5][0-9])(?:\\.([0-9]1,3))?$/i 但它没有不像我想要的那样工作:( 看,现在在您的问题中包含该正则表达式,并告诉我们它为什么不起作用。然后我们可以重新打开它。 还向我们展示了一些应该有效但无效的输入 @user1671639 99:99:99:99 是有效时间吗? OP 应该将 ?:\\.([0-9]1,3) 替换为 :\d2 【参考方案1】:

试试这个正则表达式

([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(:|\.)\d2

Regexplained

【讨论】:

这在最后 2 位毫秒内不起作用??我已经对此进行了测试,它可以工作,但以毫秒为单位,它可以是 99 最大值:([01][0-9]|2[0-3]):([0-5][0-9]):([0 -5][0-9]):([0-5][0-9]) @kach 你可以试试这个([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(:|\.)([0-9]1,2) @kach 我也检查了这个([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(:|\.)\d2 这似乎很好【参考方案2】:

我认为这是你需要的:

([01]\d|2[0-3])(:[0-5]\d)2:\d1,3 

(毫秒最多为三位数)

【讨论】:

以上是关于我需要一个正则表达式来验证时间格式 HH:MM:SS:mm [重复]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式,用于验证不同格式的字符串,用于特殊时间转换[重复]

用于验证 .NET 时间格式的正则表达式

用于验证邮政编码格式的 dart 正则表达式

正则表达式波斯日期验证

form表单验证和事件正则表达式

form表单验证和事件正则表达式