前端JS中验证Decimal有效性的正则表达式,及其应用

本文介绍了一种用于前端的数字输入验证方法,特别是针对长度为16的decimal类型字段,确保输入的数字符合后端数据库字段的数据类型要求。通过使用正则表达式,可以有效地校验整数最多12位,小数最多4位的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端引用中,通常会有需要验证你输入的数字,是否符合后端数据库中该字段的数据类型。

比如:在 A表中,有一个字段 quantity 字段类型是,decimal   length=16 Scale = 4, 表示该字段,最多16位,小数最多4位。

           那么在前端输入该值时,需要校验 该输入值,整数最多12位,小数做多4 位,改如何验证呢?

    可以用如下正则验证:

                                     reg = /^(0\.(?!0+$)\d{1,4}|^[1-9][0-9]{0,11}(\.\d{0,4})?)$/;

    其中,红色部分,表示整数的位数,蓝色部分表示小数的位数,实际应用中,可以根据自己的业务调整。

 一个简单的应用实例:

   /**
     *校验是否为长度16的decimal
     *
     * zeroFlag  判断0是否合法 true: 允许填0 false: 不允许为0
     * zeroFlag 字段可不传值,不传时 默认允许输入0
     * @author gl
     */
    decimalCheckForSixteen: function (str,zeroFlag) {
        // 整数最多12位,最多保留4位小数
        var reg = /^(0\.(?!0+$)\d{1,4}|^[1-9][0-9]{0,11}(\.\d{0,4})?)$/;
        if(zeroFlag && str == "0"){
            return str;
        }
        if (reg.test(str) == true) {
            return str;
        } else {
            return '';
        }
    },

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值