HTML表单中的时间条目验证

Time entry validation in a HTML Form

本文关键字:验证 时间 表单 HTML      更新时间:2024-05-25

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

如果我以错误的格式(例如HH:MM)输入日期,则应显示一个警报,说明:

"日期-时间格式应为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;
}

致以最良好的问候。