HTML 表单中的时间输入验证

Time entry validation in a HTML Form

我正在尝试将日期验证添加到 HTML 表单。我希望输入的日期格式为 HH:MM:SS 而不是 HH:MM.

如果我以错误的格式输入日期(例如 HH:MM),那么警报应该显示:

"Date time format should be HH:MM:SS."

请你帮我更正我的代码,让它做到这一点?
这是我在 JavaScript 中的代码:

if (date.match(regex pattern)) {
    alert("Valid date");
} else {
    alert("Invalid date: date should be in HH:MM:SS format!");
}

验证输入时间的正确方法是什么?

这个测试 HH:MM:SS 模式没有测试真实的小时、分钟和秒:

HTML代码:

<form onsubmit="return validate()">
    <input type="text" id="date" />
    <input type="submit" />
</form>

Javascript代码:

function validate() {
    var date = document.getElementById("date").value;
    if (date.match(/^[0-9]{2}:[0-9]{2}:[0-9]{2}$/)) {
        alert("Valid date");
    } else {
        alert("Invalide date: dat should be in HH:MM:SS format!");
    }
    return false;
}

您可以在这里在线试用:http://jsfiddle.net/OscarGarcia/fow3htwz/1/

切记:秒数和分钟数没有测试!有人可能会尝试引入这个不正确的时间:43:87:91 并且会(坏)通过模式!

编辑:测试小时、分钟和秒范围

这段代码很有魅力:) http://jsfiddle.net/OscarGarcia/fow3htwz/2/

function validate() {
    var date = document.getElementById("date").value;
    if (date.match(/^([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/)) {
        alert("Valid date");
    } else {
        alert("Invalide date: dat should be in HH:MM:SS format!");
    }
    return false;
}

新编辑使用测试代替匹配

在线试用:http://jsfiddle.net/OscarGarcia/fow3htwz/4/

function validate() {
    var date = document.getElementById("date").value;
    var pattern = /^([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;
    if (pattern.test(date)) {
        alert("Valid date");
    } else {
        alert("Invalide date: dat should be in HH:MM:SS format!");
    }
    return false;
}

此致。