如何使用Javascript验证带有小时和分钟的输入文本

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

我必须建立一个带有时间和分钟输入文本字段的HTML表单。 就像是:

Name :[Foo]

Surname :[Bar]

Task :[Spam]

Hours Minutes :[00:15] < - 输入文本。

我该如何帮助/验证/强制用户使用Javascript 以唯一允许的HH:mm格式编译小时和分钟值?*

有效时间范围:从00:0023:59

*我无法使用Jquery,当然我会仔细检查提交的值服务器端

提问于
用户回答回答于

要么使用以下正则表达式:

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

或者手动,但我强烈建议RegExp :)一个简单的例子:

<SCRIPT TYPE="text/JavaScript">
    function validateHhMm(inputField) {
        var isValid = /^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$/.test(inputField.value);

        if (isValid) {
            inputField.style.backgroundColor = '#bfa';
        } else {
            inputField.style.backgroundColor = '#fba';
        }

        return isValid;
    }
</SCRIPT>
<FORM METHOD="POST">
    <input type="text" onchange="validateHhMm(this);" />
</FORM>
用户回答回答于

第一个答案的RegExp与OP的查询不正确匹配。

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

应该

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

符合00-19或20-23:00-59

OP要求在00:00 - 23:59范围内验证HH:MM

没有秒。24:00不应有效。用于输入小时和分钟的两位数字。

扫码关注云+社区