<script type="text/javascript">
<!--
   function timeTest()  
  {     
    var s = document.getElementById('time').value; 
   var re = /\d{1,2}:\d{2}/; // 时间验证正则表达式 
    return re.test(s); 
  }  
//-->
</script>
 
<input id="time" value="" type="text" >
 
 <input type="button" value=" test " onclick="regTest();">

解决方案 »

  1.   

    http://www.nqqn.com/ym/184/114832.htm另:
    function isTime(elem){
    var pattern/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
    ;
    var temp=elem.match(pattern);
    if(temp==null) return false;
    //date(year,month,date, hour,minutes,seconds)
    var d=new Date(temp[1],temp[3]-1,temp[5],temp[7],temp[9],temp[11]);
    return d.getFullYear()==temp[1]&&
    (d.getMonth()+1)==temp[3]&&
    d.getDate()==temp[5]&&
    d.getHours()==temp[7]&&
    d.getMinutes()==temp[9]&&
    d.getSeconds()==temp[11];
    }
      

  2.   

    多谢大家热心,我js不是很懂,最好能直接拿过来用的,peijunfeng,你的好像有些语法错误啊,挑不出。。
      

  3.   

    /^([\d|10|11|12][...]$/ 显然你写的这个正则也是不行的,这个/\d{1,2}:\d{2}/只是格式的校验,如果你要做严格的验证,必须截取小时和分别检验取值范围
      

  4.   


    function isTime()
    {
    var s = document.getElementById('time').value;
    var reg = /\d/ ;
    var regTime = /\d{1,2}:\d{2}/; // 时间验证正则表达式if ( !regTime.test(s) ) return false; var time = s.split(':');if (!reg.test(time[0])) return false;if ( parseInt(time[0]) < 0 || parseInt(time[0]) > 23 ) return false; if (!reg.test(time[1])) return false;if ( parseInt(time[1]) < 0 || parseInt(time[1]) > 59 ) return false; return true;
    }