Antd中InputNumber组件数字限制小数位数

InputNumber组件强制限制小数,可以使用 formatter 属性配合正则来实现,但在实践中发现一个问题,比如限制的两位小数,当我输第三位小数的时候,组件会保存这个值,导致传给后台的值多出一位小数。

在2.9.0之后,InputNumber 新增 parser 属性, 搭配 formatter 一起使用,可以较好的限制小数的位数。

将formatter和parser属性都绑定同一个方法,在这个方法里实现:

......

<InputNumber min={0}
             max={100}
             step={0.01}
             formatter={limitDecimals}
             parser={limitDecimals} />

绑定方法:

const limitDecimals = (value: string | number): string => {
    const reg = /^(\-)*(\d+)\.(\d\d).*$/;
    console.log(value);
    if(typeof value === 'string') {
        return !isNaN(Number(value)) ? value.replace(reg, '$1$2.$3') : ''
    } else if (typeof value === 'number') {
        return !isNaN(value) ? String(value).replace(reg, '$1$2.$3') : ''
    } else {
        return ''
    }
};
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值