<script>function check(obj){
if(!/^-?([1-9]\d*|[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/.test(obj.value)){
alert("输入错误");
obj.focus();
}
}
</script>
<input onblur=check(this)> //所有的小数和整数
如果不要负数则把-?去掉即可。

解决方案 »

  1.   

    <script>function check(obj){
    if(!/^-?([1-9]\d*|[1-9]\d*\.\d+|0\.\d*[1-9]\d*|0?\.0+|0)$/.test(obj.value)){
    alert("输入错误");
    obj.focus();
    }
    }
    </script>
    <input onblur=check(this)> //所有的小数
    更正了数字加小数点未判错的情况。
      

  2.   

    myvicy大哥:
          这里有一个问题啊,如果想输入的12.5,在输入到一个数字加一个点的时候(12.)就会报错。
      

  3.   

    能不能一个点在离开文本框的时候不报错呢?我想在onkeyup的时候验证啊。
      

  4.   

    可以。
    上面哪个就是。
    <script>function check(obj){
    if(!/^-?([1-9]\d*|[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/.test(obj.value)){
    alert("输入错误");
    obj.focus();
    }
    }
    </script>
    <input onblur=check(this)> //所有的小数
    更正了数字加小数点未判错的情况。
      

  5.   

    建议还是用onblur,再加上一个纠错检查,如果为12.或0.则到这个点进行替换,也即进行过滤;
      

  6.   


    <input type=text id=t1 onblur="IsFloat(this);">
    <script language="javascript">
    /*
      功能:符点数判断,小数点后只能为两位
    */
    function IsFloat(obj)
    {
    var reg = /^([0-9])*(.[0-9]{0,2})?$/g;
    if(obj.value!="" && !reg.test(obj.value))
    {
    alert("Wrong!");
    }
    }
    </script>
      

  7.   

    <script>function check(obj){
    if(!/^-?([1-9]\d*|[0-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.\d*[1-9]|0)$/.test(obj.value)){
    alert("输入错误");
    obj.focus();
    }
    }
    </script>
    <input onblur=check(this)> 
      

  8.   

    function decimalInput(obj,len)
    {
     var TextBoxValue = obj.value;
      
    if ( (window.event.keyCode == 47)||(window.event.keyCode < 46 || window.event.keyCode > 57 ))//only number and point
    {  
    window.event.keyCode = 0 ;  
    }
    else
    {  //only one point
    if (window.event.keyCode == 46)
    {
    if (TextBoxValue.indexOf('.') != -1 )
    {
    window.event.keyCode = 0 ;
    }
    }
    else
    {
    //only two decimal
    if (TextBoxValue.indexOf('.') != -1)
    {
    orgValue = TextBoxValue.split(".")
    if (orgValue[1].length >= len  )
    window.event.keyCode = 0 ;  
           
    }
        }
    }

    }<input onkepress=check(this,2)>