我有一个秒表变量,它可以采用以下格式获取值: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)$