javascript - 如何在反应输入中只允许数字和小数
问题描述
我想在反应输入上只允许带小数的数字,并根据得到的值做一些条件,低于我尝试过的工作正常但有下面提到的问题
<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>}
/>
推荐阅读
- python - 每次将模型保存在 Django 上时,如何为模型的属性设置特定值?
- java - HBox/VBox 的节点子节点不跟随拖动,或以奇怪的方式移动
- c++ - “Shared”列的值未在 shell 命名空间扩展中正确显示
- regex - 正则表达式匹配带有数字的单词,但如果它只是数字则不匹配
- polymer - 定义 Polymer Web 组件而不导入它们
- javascript - 从数据中获取值(Typescript)
- python - 如何从 .txt 中查找匹配的单词
- javascript - 为什么每个容器的第一个按钮发送他们的类型值但其他按钮不能发送
- android-support-library - 使用带有 Android 导航 UI 库的 BottomNavigationView 进行导航时从操作栏中删除向上按钮
- javascript - Uncaught SyntaxError: Unexpected token { in JSON at position 96