nputNumber组件强制限制小数,可以使用 formatter 属性配合正则来实现,但在实践中发现一个问题,比如限制的两位小数,当我输第三位小数的时候,组件会保存这个值,导致传给后台的值多出一位小数。
<InputNumber min={0}
max={100}
formatter={limitDecimals}
parser={limitDecimals} />
const limitDecimals = (value: string | number): string => {
const reg = /^(\-)*(\d+)\.(\d).*$/; //限制一位小数点
const reg = /^(\-)*(\d+)\.(\d\d).*$/; //限制两位位小数点
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 ''
}
}