你这样的思路可能错了吧?
比如说一个正则表达式 /^(0\d{1}|1\d{1}|2[0-3]):([0-5]\d{1})$/
如你的想法,
当你在文本框里输入 2 时,马上进行判断。毫无疑问,肯定就报错了。

解决方案 »

  1.   

    照各位说的话,如果用正则式来匹配时间格式HH:MM的话,岂不就是需要5个正则式,分别用来对应其5个位置上的字符???
      

  2.   

    请用onkeyup事件,onkeypress事件在ie6+sp1下有延迟<input type=text onkeypress="test(this.value)">
    <input type=text onkeyup="test(this.value)">
    <script>
    function test(s) {
      switch(s.length) {
    case 1:
    if(! /^[0-2]/.test(s))
    alert("小时高位错");
    break;
    case 2:
    if(! /^0[1-9]|1\d|2[0-4]/.test(s))
    alert("小时低位错");
    break;
    case 3:
    if(! /^(0[1-9]|1\d|2[0-4]):/.test(s))
    alert("分隔符错");
    break;
    case 4:
    if(! /^(0[1-9]|1\d|2[0-4]):[0-5]/.test(s))
    alert("分高位错");
    break;
    case 4:
    if(! /^(0[1-9]|1\d|2[0-4]):[0-5]\d/.test(s))
    alert("分低位错");
    break;
      }
    }
    </script>