input框与antd表单结合限制最多只能输入一位小数

需求: input框与antd表单结合限制最多只能输入一位小数,使用getFieldDecorator的getValueFromEvent方法

正则表达式:/^(-)(\d+).(\d{0,1}).$/g

最终实现图:
在这里插入图片描述
具体代码

{
                                    getFieldDecorator('xxx', {
                                        initialValue: xxx,
                                        rules: [{ required: true, message: 'xxx' }],
                                        getValueFromEvent(e) {
                                            // 正则 replace方法
                                            // 使用replace方法来替换
                                            return e.target.value.replace(/^(\-)*(\d+)\.(\d{0,1}).*$/g, '$1$2.$3')
                                        }
                                    })(<Input type='number' />)
                                }

正则表达式分析

/^(-)(\d+).(\d{0,1}).$/g

  1. 整数部分
  • - :匹配字符的意思
  • *:匹配前面的子表达式零次或多次,
  • \d+ : \d 为整数,+表示至少出现过一次, 0-9之间的数字至少出现1次
  1. 小数部分
  • {0,1}:最少匹配 0 次且最多匹配 1 次
  • .*:单个字符匹配任意次(贪婪匹配)
  • .*?:满足条件的情况只匹配一次 (懒惰匹配)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值