对输入框的整数位数和小数位数做限制

由于需求,本人经常被要求对用户输入的住房面积,以及预算金额等等做不同的限制,所以写了一个统一验证的方法,该方法只对数字和小数点进行验证

使用方法

<input oninput=checkNum(this,3,3)>

函数
intNum表示整数位个数,必填 0表示整数位数不做限制
decNum表示小数位个数,选填 默认为0,表示没有小数

**function checkNum(obj,intNum=0,decNum=0) {
    var value=obj.value;
    var changeValue,t1,t2;
    switch (decNum){
            case 0:
                value=value.replace(/[^\d]/g,'');//去除数字以外的字符;
                value=value.replace(/^0\d+/g,'0');//防止整数位出现'00'的情况
                if(intNum!=0){
                    value=value.substr(0,intNum);
                }
                break;
            default:
                value=value.replace(/[^\d.]/g,'');//去除数字和小数点以外的字符;
                value=value.replace(/^[^\d]/g,'');//保证第一个字符是数字
                value=value.replace(/\.{2}/g,'.');//去除第二个小数点
                value=value.replace(/^0\d+/g,'0');
                changeValue=value.split('.');
                if(changeValue.length>1){//表示用户输入的既有整数又有小数
                    if(intNum==0){
                        t1=changeValue[0];
                    }else{
                        t1=changeValue[0].substr(0,intNum);
                    }
                    t2=changeValue[1].substr(0,decNum);
                    value=t1+'.'+t2;
                }else{
                    if(intNum!=0){
                        value=value.substr(0,intNum);
                    }
                }
                break;
        }
    if(obj.value!=value){
        obj.value=value;
    }
    return value;
}**
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值