正则表达式为HH:MM:SS

use*_*528 -2 javascript regex

我有一个匹配HH:MM的reqular表达式,例如12:23,它是:

function IsValidTime(timeString)
{
    var pattern = /^\d?\d:\d{2}$/;
    if (!timeString.match(pattern))
        return false;
}
Run Code Online (Sandbox Code Playgroud)

我该如何更改此行:

var pattern =/^\d?\ d:\ d {2} $ /;

检查格式化为秒的字符串,如下所示:HH:MM:SS,例如12:23:05

Tim*_*ker 15

/^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)

24小时制,强制性的领先零.

/^(?:2[0-3]|[01]?[0-9]):[0-5][0-9]:[0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)

对于24小时的时间,前导零可选.

/^(?:1[0-2]|0[0-9]):[0-5][0-9]:[0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)

12小时的时间,强制性的前导零.

/^(?:1[0-2]|0?[0-9]):[0-5][0-9]:[0-5][0-9]$/
Run Code Online (Sandbox Code Playgroud)

12小时的时间,前导零可选.


h2o*_*ooo 8

像下面这样简单的东西应该工作:

/([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/g
Run Code Online (Sandbox Code Playgroud)

正则表达式说明:

  • ([01][0-9]|2[0-3])
    • 以下集合:
    • [01][0-9] 字符"0"或"1"后跟0到9之间的任何数字
    • |-
    • 2[0-3] 字符"2"后跟0到3之间的数字
  • : 一个字面的冒号
  • [0-5][0-9] - 0到5之间的任何数字,后跟0到9之间的任何数字
  • : 一个字面的冒号
  • [0-5][0-9] - 0到5之间的任何数字,后跟0到9之间的任何数字

演示:

Regex101

  • 还要在字符串末尾添加/([[01] [0-9] | 2 [0-3]):[0-5] [0-9]:[0-5] [0-9] $否则12:15:16asdfad使用上述regEx有效 (2认同)