我有一个输入字段,用户在其中输入格式为mm:hh的时间。格式是在字段内指定的(默认值为09:00),但我仍然想执行客户端检查以查看格式是否正确。

由于现有的客户端验证位于jQuery中,因此我也希望保留在jQuery中。

我主要是一名PHP程序员,所以我需要一些帮助以最佳方式编写此程序。

我知道我可以检查每个单独的字符(前两个=数字,第三个=':',后两个=数字),但是有一种方法可以更优雅地完成它,同时还可以检查小时数不大于23和分钟数不大于59?

在PHP中,我将使用正则表达式,我认为jQuery有类似的东西吗?

这样的事情对我来说很有意义:

([01]?[0-9]|2[0-3]):[0-5][0-9]

但是我对jQuery语法不太熟悉,所以我不确定该怎么做。

最佳答案

您也可以在JavaScript中使用正则表达式:

http://www.w3schools.com/jsref/jsref_obj_string.asp

使用
.search()-http://www.w3schools.com/jsref/jsref_search.asp

或.match()-http://www.w3schools.com/jsref/jsref_match.asp

或.replace()-http://www.w3schools.com/jsref/jsref_replace.asp

编辑:

<script>
    var regexp = /([01][0-9]|[02][0-3]):[0-5][0-9]/;
    var correct = ($('input').val().search(regexp) >= 0) ? true : false;
</script>

编辑2:

这里是javascript中regexpobject的文档:

http://www.w3schools.com/jsref/jsref_obj_regexp.asp
<script>
    var regexp = /([01][0-9]|[02][0-3]):[0-5][0-9]/;
    var correct = regexp.test($('input').val());
</script>

EDIT3:

修复了正则表达式

09-25 17:41