onchange="value=value.replace(/[^\d{1}\.\d{1}|\d{1}]/g,'') 
 还能录入 |}{ 这三个字符,也能录入多个小数点

解决方案 »

  1.   

    要是这种格式的onchange="value=value.replace(/[^\d{1}\.\d{1}|\d{1}]/g,'') 改成这样不行啊onchange="value=value.replace(^[1-9]\d+\.\d+|0\.\d+[1-9]\d+$,'')
      

  2.   

    onchange="value=value.replace(/[^\d.|{}]/g,'')  
      

  3.   


    不行啊,效果和我原来的一样 |}{ 这三个字符还是可以录入,而且页能录入多个小数点value.replace(/[^\d\.]/g,'') 这个是最接近的了,唯一的问题是还能输入多个小数点。
      

  4.   

    decimal:function(len, x) {                
                    var str;
                    if (x == 0) {
                        str = "^(?!0{2,})(?!0\\d+)\\d{0," + len + "}$"; //小数位0
                    } else if (x == 1) {//小数位1
                        str = "^(?!0{2,})(?!0\\d+)(?:\\d{1," + (len - x) + "}\\.?[\\d+]{0," + x + "})(?!\\.)$";
                    } else {//decimal(12,2) 有效长度12,小数位2
                        str = "^(?!0{2,})(?!0\\d+)(?:\\d{1," + (len - x) + "}\\.?[\\d+]{0," + x + "}|\\d{1," + ((len - x) + 1) + "}\\.?[\\d+]{0," + (x - 1) + "})(?!\\.)$";
                    }
                    var reg = new RegExp(str);
    ...其他部分LZ自由发挥吧