Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 扩展正则表达式以包含时间格式sss,th_Javascript_Regex - Fatal编程技术网

Javascript 扩展正则表达式以包含时间格式sss,th

Javascript 扩展正则表达式以包含时间格式sss,th,javascript,regex,Javascript,Regex,这是这个问题的延伸: 我需要扩展正则表达式以包含一个仅以秒为单位的时间。例如,一次(慢速)400米跑的时间可以定为63.43秒 前面问题中回答的表达式^(?::::)?(?:[0-5]\d:|[0-9]:)?(?:[0-5]\d |\d)(?:[,]\d\d?$)涵盖了以下所有时间: 0:59 12:34:56 12:34:5,4 1:2:3,56 1:23,45 1:2,12 我扩展它的尝试失败了: (?:[0-5]\d:[0-9]:)(?:[0-5]\d |\d)(?:[。]\d\d?)(?

这是这个问题的延伸:

我需要扩展正则表达式以包含一个仅以秒为单位的时间。例如,一次(慢速)400米跑的时间可以定为63.43秒

前面问题中回答的表达式
^(?::::)?(?:[0-5]\d:|[0-9]:)?(?:[0-5]\d |\d)(?:[,]\d\d?$)
涵盖了以下所有时间: 0:59 12:34:56 12:34:5,4 1:2:3,56 1:23,45 1:2,12

我扩展它的尝试失败了:

(?:[0-5]\d:[0-9]:)(?:[0-5]\d |\d)(?:[。]\d\d?)(?:\d{1,3})(?:[,。]\d)(?:\d)$

我已将其添加到


我似乎真的无法理解正则表达式

这个正则表达式呢

 ^(?:(\d{1,2}):(\d{1,2}))?(?::?(\d{1,3}))?(?:[.,](\d{1,3}))?$
描述

演示

讨论 这个正则表达式非常宽松。它允许这样的值:

 99:99:999.999 <-- 
 ^  ^  ^  ^
 |  |  |  |
 HH |  |  |
    MM |  |
       SS |
          , is allowed also

99:99:999.999如果您要允许这么多通用格式,您可能希望尝试不受限制地使用此选项,以允许编程验证。是的,如果您不断向单个正则表达式添加特殊情况,则可能会使其成为不可读、不可维护的混乱。我同意你应该把它分成许多不同的格式,对每一种格式进行测试,直到找到匹配的格式。对于新的情况,秒列(和禁止分钟列)听起来像是
\d+
,这会起作用,假设与上一个问题相同。是的,我想把它分解,我可以这样做,因为我需要60秒以上的唯一情况是在400米比赛中。@Phil:就我而言,所有的正则表达式都不可读!非常感谢-真棒的回答。当添加分钟时,不允许以秒为单位的时间超过59.99。例如,62.56是可以的。162.56也可以,尽管不太可能被要求,除非是我奶奶开的400。不允许使用1:62.56。@Craigm当您看到此
1:2
时,是
1小时2分钟
还是
1分2秒
?即1小时2分钟。1小时2秒等于1:0:2