正则表达式为HH:MM:SS

时间:2013-02-15 10:31:03

标签: javascript regex

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

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

如何更改此行:

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

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

4 个答案:

答案 0 :(得分:14)

/^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$/

24小时制,必须提前零。

/^(?:2[0-3]|[01]?[0-9]):[0-5][0-9]:[0-5][0-9]$/

24小时,前导零可选。

/^(?:1[0-2]|0[0-9]):[0-5][0-9]:[0-5][0-9]$/

持续12小时,必须使用前导零。

/^(?:1[0-2]|0?[0-9]):[0-5][0-9]:[0-5][0-9]$/

持续12小时,前导零可选。

答案 1 :(得分:7)

以下简单的事情应该有效:

/([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/g

正则表达式解释:

  • ([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

答案 2 :(得分:0)

根据您的正则表达式检测99:99:99,以下正则表达式就足够了:

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

或更复杂一点

/^\d?\d(?::\d{2}){2}$/

但会更好(因为它正确匹配范围):

/^(?:[01]?\d|2[0-3]):[0-5]\d:[0-5]\d$/

符合函数名称IsValidTime ...

答案 3 :(得分:0)

在javascript中将格式的时间验证为“hh:mm am / pm”

function timeValidation(strTime) {
           var timeFormat = /^(?:1[0-2]|0?[0-9]):[0-5][0-9]\s?(?:am|pm)?/;
           return timeFormat.test(strTime);
       }

timeValidation(“12:30 PM”)//返回true

timeValidation(“12:30”)//返回false

timeValidation(“27:30 AM”)//返回false