var n = document.formName.inputName.value;
if(!isNaN(n) && /^\d+$/.test(n))
{
  n = parseInt(n, 10);
  if(n>=0 && n<24)
  {
    alert("right");
  }
}

解决方案 »

  1.   

    <input name=num onblur=check(this)>
    <script language=javascript>
    function check(obj)
    {
    if(/^((1?[0-9])|(2[0-4]))$/.test(obj.value))
    {
    alert("正确")
    }
    else
    {
    alert("错误")
    }
    }
    </script>
      

  2.   

    如果我要是输入<0  或者>24的话,提示输入错误,但是为什么012却没有提示?
      

  3.   

    是这样的,用 parseInt 的时候, "012" 变成了 12 所以通过了验证。还是换成正则吧:
    var n = document.formName.inputName.value;
    if(!isNaN(n) && /^((1?\d)|(2[0-4]))$/.test(n))
    {
        alert("right");
    }