var reg = /^-?(\d|[1-9]\d+])(\.\d+)?$/;  //可以是负数,不像00.3这样不允许,0.3这样正确
var num = document.getElementById("dd").value;
if(reg.test(num))
   alert("正确");
else
   alert("错误");

解决方案 »

  1.   


    我是菜鸟 replace 和你的test 不一样哦。。我用了你这个不起作用 字符也能输入了
      

  2.   

    Number : /^\d+$/
    Integer : /^[-\+]?\d+$/
    Double : /^[-\+]?\d+(\.\d+)?$/看自己选择
      

  3.   

    -0开头为假
    0开头为假
    -.为假<input type="text" onkeyup="chk(this)" />
    <script>
    function chk(obj){
    if(!obj.val) obj.val = '';
    var val = obj.value.replace(/^\-/,''), reg = /^(?:[1-9]\d*|0)(?:\.\d*)?$/;
    if(val == '' || reg.test(val)){
    obj.val = obj.value;
    return;
    }else{
    obj.value = obj.val;
    } }
    </script>