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

解决方案 »

  1.   


    <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>
      

  2.   

    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));
    这样试试看可以不
      

  3.   


    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 />' )
    }
    不知道 类似 23:60 这样楼主需要判断为正确不?
      

  4.   

    确定啊,我刚刚又测了遍,还是老样子,我把17:30传进去,你方法里的ar.length返回的却是1,怎么回事啊,你代码应该没问题,我传8:30进去返回的是2,
      

  5.   

    我马上还有一个问题要发上去,是关于文本框的,就是如何让文本框不能输入任何东西,但是点击文本框的时候有光标,不能禁用,因为禁用之后文本框会变色,我用了readyOnly之后结果后台不能调用。大家关注一下。