日期:2014-05-16  浏览次数:20519 次

JS验证时间格式
现在我有个文本框只能输入的时间格式为:8:30或09:30或17:30
如何对文本框的内容进行验证输入的格式是否正确,如果输入的是非数字也要进行验证的,坐等大神!!!

------解决方案--------------------
HTML code

<input type="text" id="time" onchange="vTime(this.value);" />
<script type="text/javascript">
function vTime(s) {
    var ar = s.split(':'), FLAG = true;
    if (ar.length != 2) FLAG = false;
    else {
        if (!/^[\d]+$/.test(ar[0]) || !/^[\d]+$/.test(ar[1])) FLAG = false;
        else {
            if (parseInt(ar[0]) < 0 || parseInt(ar[0]) > 23 || parseInt(ar[1]) < 0 || parseInt(ar[1]) > 59) FLAG = false;
        }
    }
    if (!FLAG) {
        alert('时间格式有误');
        return false;
    }
}
</script>

------解决方案--------------------
var reg=/^([01]?[0-9]|2[0-4]):[0-6][0-9]$/;
var a="8:30";
alert(reg.test(a));
a="09:30";
alert(reg.test(a));
a="17:30";
alert(reg.test(a));
这样试试看可以不
------解决方案--------------------
JScript code

var data = [
    '9:45',
    '19:45',
    '0:0',
    '9:55',
    '09:55',
    '25:00',
    '24:00',
    '23:60',
    '23:59',
    '18:59'
];
var re = /^(?:0?\d|1\d|2[123]):[012345]?\d$/;
for(var i = 0, len = data.length; i < len; i++){
    document.write( data[i] + ' ------------ '+ re.test(data[i]) + '<br />' )
}

------解决方案--------------------
^(?:[01]?\d|2[0-3]):(?:[0-5]?\d)$