首页 > 解决方案 > 如何解决输入数字格式的问题?

问题描述

人们。我需要修复输入字段中的错误。我使用 Regex 将货币格式化为:(R$ 1.200.200,99)。我想知道我的代码有什么问题?请!

按照代码链接

https://6fhfv.csb.app/

   <InputNumber
    name="topText"
    style={{
      width: 400,
      marginRight: "1rem"
    }}
    formatter={value => {
      let temp  = value+'';
      temp = temp.replace(/([0-9]{2})$/g, ",$1");
      if(temp.length > 6 ) {
        temp = temp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");

        return temp;
      } 
    }}
    parser={value => value.replace(/[\D]+/g,'')}
    onChange={handleChange}
  />

标签: javascripthtmlcssreactjs

解决方案


您在 InputNumber 上缺少 onChange 处理程序。

编辑

在您的示例中,您正在为您的输入提供显式值,如果您这样做,您必须有某种机制来更改它,这就是您应该添加 onChange 处理程序的原因。

另一种方法是使用不受控制的输入,您不跟踪输入值的当前状态,而是可以通过 ref 访问它以在需要时获取值。

这两种方法都是有效的,您应该选择满足您需求的一种。


推荐阅读