用js判断文本框内输入的必须为正整数或小数

解决方案 »

  1.   

    <input type="text" onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onafterpaste="this.value=this.value.replace(/[^\d.]/g,'')" /> 
       试试这个
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> 
        <head> 
            <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
            <title>正则实现文本框只能输入正整数</title> 
            <script>
                function test(value) {
                var pattern=/^\d*\.?\d*$/g;
                if (pattern.test(value)) {
                    return true; 
                }
                else {
                    document.getElementById('a').value = '';
                }
                 }
            </script>
        </head> 
        <body> 
            <input type="text" id='a' onKeyUp="test(this.value)" onafterpaste="test(this.value)" /> 
        </body> 
        
    </html>这个可以用。。看你对0有没有限定。。
      

  3.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> 
        <head> 
            <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
            <title>正则实现文本框只能输入正整数</title> 
            <script>
                function test(value) {
                var pattern=/^\d*\.?\d+$/g;
                if (pattern.test(value)) {
                    return true; 
                }
                else {
                    document.getElementById('a').value = '';
                }
                 }
            </script>
        </head> 
        <body> 
            <input type="text" id='a' onblur="test(this.value)"  /> 
        </body> 
        
    </html>
    经测试。。这个好。。
      

  4.   


    var tel = $("#MobliePhone").val();
    var partten = /^[1-9]\d*\.?\d*$/;
    if (partten.test(tel))
    {}else
    {}
      

  5.   


    /**
    * 判断是否为正整数或正浮点数
    * @param {} testStr要验证的字符
    * @return {Boolean} 不是正整数或正浮点数返回false,否则返回true
    */
    function checkFloat(testStr) {
        var matchStr = /^[1-9]\d*$|^([1-9]\d*\.\d*[0-9]\d*$|0\.\d*[1-9]\d*$)/;
        return matchStr.test(testStr);
    }页面调用if (!checkFloat(document.getElementById("txtNum"))) {
     alert("只能为为正整数或正浮点数!");
    }具体的应用还要看你的需求,改matchStr就行了。
      

  6.   

    如果没要求一定用正则的话 这样试试
    var a="123.2a";
    var b=Math.abs(parseFloat(a));
    alert(a==b);
      

  7.   

    我们这里的框架里有这个方法,分享给楼主吧。
    /**
    * 输入框t中只允许输入正整数数字,t是输入框对象,在onKeyUp事件内调用就行
    */
    function inPutNum(t){
           str = t.value;
           str2 = "";
           for(i=0;i<str.length;i++){
             var ch=str.charCodeAt(i);
             var chars = str.substring(i,i+1);
             if(ch<48 || ch>57) {
               break;
     }else{
       str2 += chars;
     }
           }
           t.value = str2;
    }
    下面是附带的楼主可能会有用的,嘿嘿
    /**
    *输入框t中只允许输入正整数数字,并且最大位数不能超过maxInt
    */
    function inPutMaxInt(t,maxInt){
    str = t.value;
    strT = "";
    for (i = 0; i < str.length; i ++){
    if (i == maxInt){
    break;
    }
    var ch = str.charCodeAt(i);
    var chars = str.substring(i, i + 1);
    if (ch < 48 || ch > 57){
    break;
    } else {
    strT += chars;
    }
    }
    t.value = strT;
    }
    /**
    * 输入框t中只允许输入整数数字
    * flag-是否允许输入负整数,true-允许,false-不允许
    */
    function inPutNum(t,flag){
           str = t.value;
           str2 = "";
           for(i=0;i<str.length;i++){
             var ch=str.charCodeAt(i);
             var chars = str.substring(i,i+1);
             if(ch<48 || ch>57) {
               if(i==0 && flag=="true" && chars=="-"){
                 str2 += chars;
               }else{
                 break;
               }
     }else{
       str2 += chars;
     }
           }
           t.value = str2;
    }