前端数值类型格式校验

前端数值类型格式校验

前端数值类型的格式校验,包括纯整数,一位小数,两位小数。

纯整数

只让输入指定位数的纯整数,类似于“.”、“e”等数学符号也禁止输入

onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" οninput="if(value.length>a)value=value.slice(0,a)"
a:想要限制的数值位数。

字母自动转大写

οninput=" this.value=this.value.replace(/[^\w]/g,'').toUpperCase()"

限一位小数


οninput="this.value=numberCheck(this)"
function numberCheck(obj)
{
    console.log("keep one")
    //清除“数字”和“.”以外的字符
    obj.value = obj.value.replace(/[^\d.]/g, "");
    //只保留第一个. 清除多余的
    obj.value = obj.value.replace(/\.{2,}/g, ".");
    obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
    //只能输入一个小数
    obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d).*$/, '$1$2.$3');
    //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02
    if(obj.value.indexOf(".") < 0 && obj.value != "") {
        obj.value = parseFloat(obj.value);
    }
    return obj.value;
}

限两位小数

οninput="this.value=numberCheck(this.value)"
function NumberCheck(num) {
    console.log(num)
    var t = num.charAt(0);
    var str = num
    var len1 = str.substr(0, 1)
    var len2 = str.substr(1, 1)
    var lenLast=str.substr(str.length-1)
    //如果第一位是0,第二位不是点,就用数字把点替换掉
    if (str.length > 1 && len1 == 0 && len2 != ".") {
        str = str.substr(1, 1)
    }
    //第一位不能是.
    if (len1 == ".") {
        str = ""
    }
    //最后一位不能是.
    if (str.length==8&&lenLast == ".") {
        str = ""
    }
    //限制只能输入一个小数点
    if (str.indexOf(".") != -1) {
        var str_ = str.substr(str.indexOf(".") + 1)
        if (str_.indexOf(".") != -1) {
            str = str.substr(0, str.indexOf(".") + str_.indexOf(".") + 1)
        }
    }
    //正则替换
    // str = str.replace(/[^\d^\.]+/g, '') // 保留数字和小数点
    // str = str.replace(/\.\d\d\d$/,'') // 小数点后只能输两位
    str = str.replace(/^\D*([0-9]\d*\.?\d{0,2})?.*$/,'$1') // 小数点后只能输 2 位
    if(t == '-'){
        str = '-'+str;
    }
    return str;
}
有从其他文章借鉴
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值