用正则表达式限制只能输入数字:[color=#008080]onkeyup="value=value.replace(/[^\d]/g,'') 
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"[/color] 上面的只能输整数,小数就不行了,怎样改成只能输数字(包括decimal型小数)
这里的小数指的是日常生活中的小数(1.符合数学中小数定义(如.0,-.8就不算小数;  2.包括负小数;  3.编程语言中的小数如‘0.3f’因含有字母排除在外 3.非换算后的(如4%虽换算后也为小数但排除在外)

解决方案 »

  1.   

    抱歉,刚我大脑短路了
    看下面的式子
    <script type="text/javascript">
    var CSHOW = function (f) {
    //测试函数
        var a = [], b = arguments, i = 1;
        for (; i < b.length ; i ++) a[i - 1] = b[i] + " = " + f(b[i]);
        alert(a.join("\n"));
    };var isNumber = function (string) {
        /*
        return /^-?\d*\.?\d+$/.test(string); //小数点前可以为空
        */
        return /^-?(?:\d+\.?)?\d+$/.test(string);
    };CSHOW(
        isNumber, "123", "23.", "123.23", ".23", "1.234", "1.23"
    );
    </script>
      

  2.   

    或者这个。。<script type="text/javascript">
    var CSHOW = function (f) {
    //测试函数
        var a = [], b = arguments, i = 1;
        for (; i < b.length ; i ++) a[i - 1] = b[i] + " = " + f(b[i]);
        alert(a.join("\n"));
    };var isNumber = function (string) {
        /*
        return /^-?\d*\.?\d+$/.test(string); //小数点前可以为空
        */
        return /^-?\d+(?:\.\d+)?$/.test(string);
    };CSHOW(
        isNumber, "123", "23.", "-123.23", ".23", "1.234", "1.23"
    );
    </script>
      

  3.   

    javascript:alert(/^-?\d+\.?\d+$/.test("-0.89089089"));/^-?\d+\.?\d+$/ 
    -? 表示没有或只有一个负号
    \d+ 表示有多于一个数字
    \.? 表示没有或只有一个小数点
    \d+ 表示小数点后面将要有1个或更多数字
      

  4.   

    tolsjavascript:alert(/^-?\d+\.?\d+$/.test("1"));