1.场景:只能输入大于等于0的数字,不能输入-+.三种字符,且有最大输入数值(9999)限制。
2.代码实现:
参数注解:
min
:最小值
max
:最大值
precision
: 数值精度(去掉以 0 开头的数字,如:输入 01,失焦后会去掉 0)
formatter
:对输入值格式化
parser
:与 formatter
结合使用,指定从 formatter
里转换回数字的方式
<a-form-item label="排序" name="displayOrder">
<a-input-number
v-model:value="formState.displayOrder"
:min="0"
:max="9999"
:precision="0"
:formatter="transformNum"
:parser="transformNum"
/>
</a-form-item>
// ant design数字输入框限制只能输入大于等于零的整数
const transformNum = value => {
let v = null
switch (typeof value) {
case 'string':
v = isNaN(+value) ? 0 : value.replace(/\./g, '')
break
case 'number':
v = isNaN(value) ? 0 : String(value).replace(/\./g, '')
break
default:
v = 0
}
return v
}