我想要一个只接收大于 2.5
的整数和小数点数的输入字段
const [foreignPackageWeight, setForeignPackageWeight] = useState('')
<input type="text" value={foreignPackageWeight}
onChange={(e) => {
setForeignPackageWeight(e.target.value.replace(/[^0-9.]/g, ''))
}}
/>
但是我的正则表达式允许像这样的数字
.1
、..2
、3...4
、5.....
如何将我的正则表达式更改为只允许一位小数点?
答案 0 :(得分:2)
一种可能的解决方案是 lookaround 的一种形式,称为正向后视。环视可让您确保某个模式存在(或不存在),而该模式不会成为结果的一部分。
/[^0-9.]|(?<=\..*)\./g
匹配以下任何一项:
[^0-9.]
任何非数字或句点(?<=\..*)\.
一个句号,只要另一个句号出现在序列中较早的位置