Antd中InputNumber組件數字限制小數位數

InputNumber組件強制限制小數,能夠使用 formatter 屬性配合正則來實現,但在實踐中發現一個問題,好比限制的兩位小數,當我輸第三位小數的時候,組件會保存這個值,致使傳給後臺的值多出一位小數。code

在2.9.0以後,InputNumber 新增 parser 屬性, 搭配 formatter 一塊兒使用,能夠較好的限制小數的位數。orm

將formatter和parser屬性都綁定同一個方法,在這個方法裏實現:ci

......

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

綁定方法:string

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 ''
    }
};
相關文章
相關標籤/搜索