input输入框数字限制

正则表达式验证输入框的内容

// 单价  只能输入数字和小数点,且必须数字开头并大于或者等于1,限制最多三位小数,小数点为最后一位时,失去焦点时自动截掉
<input type="text" value="" name="price" onkeyup="ValidateNum1(this)"  onblur="toDecimal(this)" placeholder="请输入单价" maxlength="8"/>

// 数量 只能输入正整数
<input type="text" class="set_val" name="money" id="" onkeyup="ValidateNum3(this)" placeholder="请输入数量" maxlength="7"/>

// 总价  只能输入数字和小数点,且必须数字开头并大于或者等于1,限制最多两位小数,小数点为最后一位时或者输入的为正整数时,失去焦点时自动补两位小数
<input type="text" class="set_val" name="totalMoney" id="" onkeyup="ValidateNum2(this)" onblur="toDecimal2(this)" maxlength="5" placeholder="请输入总价" />

    // 验证输入内容是否合法
    function ValidateNum1(obj) {
        obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
        obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
        obj.value = obj.value.replace(/^0/g,""); //验证第一个字符是数字而不是0
        obj.value = obj.value.replace(/^0+$/g,"");//若以0开头且连续键入多个0时,替换空
        obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
        obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
        obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d\d).*$/,'$1$2.$3'); //只能输入三个小数
    }

    function ValidateNum2(obj) {
        obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
        obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
        obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
        obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
        obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
    }

    function ValidateNum3(obj) {
        obj.value = obj.value.replace(/[^\d]/g,""); //清除"数字"以外的字符
        obj.value = obj.value.replace(/^0/g,""); //验证第一个字符是数字而不是0  最低赔率只能为1
        obj.value = obj.value.replace(/^0+$/g,"0");//若以0开头且连续键入多个0时,只保留一个0
    }

    function toDecimal(obj){
        var f = parseFloat(obj.value);
        if (isNaN(f)) {  
            return false;  
        }
        obj.value = f;
    }

    // 退水自动补足小数点后两位
    function toDecimal2(obj){
        var f = parseFloat(obj.value);
        if (isNaN(f)) {  
            return false;  
        }    
        var s = f.toString();  
        var rs = s.indexOf('.');  
        if (rs < 0) {  
            rs = s.length;  
            s += '.';  
        }  
        while (s.length <= rs + 2) {  
            s += '0';  
        }  
        obj.value = s;
    }

猜你喜欢

转载自blog.csdn.net/u013068184/article/details/81414993
今日推荐