我想在反应输入中只允许带小数的数字并根据获得的值做一些条件,低于我尝试的工作效果很好但有以下问题

<FormInput
   name="amount"
   label="Amount"
   onChange: this.handleChange,
   startAdornment: (<InputAdornment position="start">$</InputAdornment>),
   pattern: '[0-9]*',
/>


handleChange = (event) => {
    const { value } = event.target;
    const validValue = Math.abs(parseFloat(value));
    if (validValue && !isNaN(validValue)) {
      // some condition...
      // i have some other set of value that i compare here with input got like if
      // 1) validValue > someValue, then this.setState({ someValue })
      // 2) validValue <= someValue, then this.setState({ validValue })
      // 3) else this.setState({ validValue: 0 })
    }
  }


但是这里的问题是我无法输入十进制以及其他数字,例如我需要输入1.2,然后我首先需要输入12,然后在2之前添加'。'(十进制),所以请帮我做什么允许带小数点的数字和其他数字

最佳答案

您不应为此使用模式。您可以简单地将type="number"传递给您的输入,它将进行您想要的验证。

<FormInput
   name="amount"
   label="Amount"
   type="number"
   onChange={this.handleChange}
   startAdornment={<InputAdornment position="start">$</InputAdornment>}
/>

10-07 21:15