我正在寻找一个用于验证时间的正则表达式字符串。
我使用^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
验证我的HTML表单,但是我希望在我的HTML文本输入字段上为时间输入创建某种输入掩码,我将附加到keydown
事件以进行测试用户输入的输入。
接受的值
答案 0 :(得分:1)
部分检查的时间输入掩码
<input type="text" id="timeinput" name="time" value="" onkeyup="validateTime(this);"/>
<span id="validationresult"></span>
<script>
function validateTime(el)
{
var result;
// first, check if input is fully correct
if (el.value.match(/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/))
result = "OK";
// then, check if it is not wrong
else if (el.value.match(/^([0-9]|0[0-9]|1[0-9]|2[0-3])?(:([0-5]|[0-5][0-9])?)?$/))
result=""; // don't bother user with excess messages
else
result="Please, correct your input";
document.getElementById("validationresult").innerHTML=result;
}
</script>
随意优化额外匹配,但在这里您可以看到两个表达式之间的区别。