前言
今天有一个 React JS 的初学者,问我一个用例,想更正用户在<input type='number>
字段中输入的数字。
默认情况下,用户可以输入带前导零的数字,例如 0002 或 -0042 等。
想让它在用户输入数字时删除前导零。此外,用户应该能够输入小数和负数。
解决方案
1,使用正则表达式从头开始删除零:/^0+/
onChange = (e) => {
const _removedZeros = e.target.value.replace(/^0+/, '')
///...
}
<input type = 'number' onChange={onChange}>
2,简单地将值乘以 1,如下所示:
const [value, setValue] = useState("");
<input
value={Boolean(value) ? value : ''}
type="number"
onChange={(e) => setValue(e.target.value * 1)}
/>
这样用户就不能输入前导零