<script language="javascript">
function CheckNum(num)
{
var reInt=/^\d+$/;
var reFloat=/^\d+\.\d+$/;
return reInt.test(num) || reFloat.test(num);
}
</script>
<input type="text" name="ff" value="" onBlur="alert(CheckNum(this.value));">

解决方案 »

  1.   

    一个就行,isNaN()无论是正数还是销数,他都会返回false。甚至连例如"123,234,32"这样的数字都能判断!
      

  2.   

    <input type="text" name="ff" value="" onkeyup="this.value=this.value.replace(/^\d+$/,'')">
      

  3.   

    如果用onkeyup,如果用鼠标右键,然后选择粘贴,似乎会出错。
    我试过onchange事件,似乎也可以,不过和onblur一样,都是失去焦点之后才有用。如果几个事件一起用,不知效果是否好一些。
      

  4.   

    1.isNaN()不能判断是否数字,try isNaN("123ab");
    2.<input type="text" name="ff" value="" onKeyUp="this.value=this.value.replace(/^\d+$/,'')">限制不完善,而且这里不能用onpropertychange,因为replace也会触发该事件而导致堆栈溢出。