Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解决输入数字格式的问题?_Javascript_Html_Css_Reactjs - Fatal编程技术网

Javascript 如何解决输入数字格式的问题?

Javascript 如何解决输入数字格式的问题?,javascript,html,css,reactjs,Javascript,Html,Css,Reactjs,人们。我需要修复输入字段中的错误。我使用Regex将货币的格式设置为:(R$1.200.200,99)。我想知道我的代码有什么问题?。求你了 遵循代码链接 { 设温度=值+“”; temp=临时替换(/([0-9]{2})$/g,“,$1”); 如果(温度长度>6){ temp=temp.replace(/([0-9]{3}),([0-9]{2}$)/g,“.$1,$2”); 返回温度; } }} 解析器={value=>value.replace(/[\D]+/g',)} onChange

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

遵循代码链接

{
设温度=值+“”;
temp=临时替换(/([0-9]{2})$/g,“,$1”);
如果(温度长度>6){
temp=temp.replace(/([0-9]{3}),([0-9]{2}$)/g,“.$1,$2”);
返回温度;
} 
}}
解析器={value=>value.replace(/[\D]+/g',)}
onChange={handleChange}
/>

InputNumber上缺少onChange处理程序

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

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


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

您缺少InputNumber上的onChange处理程序

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

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


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

嗨,@Mario Nikolaus我使用的是React UI库Ant设计,它在引擎盖上有这种方法。我想是的。你肯定需要它,即使这里的每个示例都使用onChange处理程序,甚至是官方代码笔,我测试的官方代码笔示例没有onChange方法和工作。我注意到示例中的函数仅用于在控制台中显示值。编辑后阅读该部分,它解释了您的confusion@MrCaji如果这解决了您的问题,请将此标记为answerHi,@Mario Nikolaus我使用的是React UI库Ant设计,它在引擎盖下有此方法。我想是的。你肯定需要它,即使这里的每个示例都使用onChange处理程序,甚至是官方代码笔,我测试的官方代码笔示例没有onChange方法和工作。我注意到示例中的函数仅用于在控制台中显示值。编辑后阅读该部分,它解释了您的confusion@MrCaji如果这解决了您的问题,请将其标记为应答您的解析器似乎工作不正常。用于解析逗号和点的正则表达式是错误的,例如,您需要调用
formatToParts
并从中获取小数,而不是将数字格式obj传递给正则表达式。@EJ105我不理解您的想法,因为我是正则表达式的新手。你能帮我使用密码吗?请注意,您的解析器似乎工作不正常。用于解析逗号和点的正则表达式是错误的,例如,您需要调用
formatToParts
并从中获取小数,而不是将数字格式obj传递给正则表达式。@EJ105我不理解您的想法,因为我是正则表达式的新手。你能帮我使用密码吗?请
   <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}
  />