function isFloat(str){
if(str=="")
return false;
var reg=/^\-?([1-9]\d*|0)(\.\d?[0-9]{0,3})?$/;
return reg.test(str);
}
alert(isFloat("123.152"));//true

解决方案 »

  1.   

    谢谢 
    可是alert(isFloat("123.1521"));//也true啊
    是不是改var reg=/^\-?([1-9]\d*|0)(\.\d?[0-9]{0,2})?$/;
    这样
      

  2.   

    <script language="javascript">
    function check(obj)
    {
    var regex = /\d+\.\d{3}$/;
    var istrue = obj.match(regex);
    if(istrue)
    {
    window.alert("true");
    }
    else
    {
    window.alert("false");
    }
    }
    </script>
    <input type="text" onblur="check(this.value)" />
      

  3.   

    还是不严格..~当非小数位只有1位的时候应该可以为0.所以应该是:
    /^-?(\d|[1-9]\d+)(\.\d{0,2}[1-9])?$/
      

  4.   

    function isFloat(str){
    if(str=="")
    return false;
    var reg=/^\-?([1-9]\d*|0)(\.[1-9]{1,3})?$/;
    return reg.test(str);
    }
    alert(isFloat("123.152"));//true