我正在尝试将日期验证添加到 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;
}
致以诚挚的问候。
关于javascript - HTML 表单中的时间输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743300/