我有一个秒表变量,它可以采用以下格式获取值:HH:MM:SS大多数时候。 'HH'可以超过24小时-基本上是任何有效数字。

我对这种正则表达式不太满意,但是能够编写大部分内容,但无法验证小时数是否为单位。例如正则表达式下面的时间传递时间1:10:09,尽管它无效。有效小时部分应为01

//var stopWatchTime = '02:10:09'; //Valid
//var stopWatchTime = '00:10:09'; //Valid
//var stopWatchTime = '1234:10:09'; //Valid
//var stopWatchTime = ':10:09'; //Invalid
//var stopWatchTime = 'ax:10:09'; //Invalid
var stopWatchTime = '1:10:09'; //Invalid, should be 01:10:09.

if(!stopWatchTime .match(/^\d+:\d{2}:\d{2}$/)){
    alert('invalid time- ' + stopWatchTime);
}
else{
    alert('valid time - ' + stopWatchTime);
}

我应该在正则表达式中更改什么,以使其应检查任何数字,但小时部分应具有2位或更多数字?

最佳答案

/^\d{2,}:\d{2}:\d{2}$/

将+更改为{2,}以使其具有两个或更多字符

如果您想查看匹配和不匹配的内容,可以在这里http://regexr.com?31fu4

编辑:
另外,如果您只希望在零件使用的小时/分钟数中匹配多达59个
^\d{2,}:(?:[0-5]\d):(?:[0-5]\d)$

07-25 22:03