正则表达式只允许整数和小数点数

时间:2021-05-04 05:11:47

标签: javascript reactjs regex

我想要一个只接收大于 2.5 的整数和小数点数的输入字段

const [foreignPackageWeight, setForeignPackageWeight] = useState('')

<input type="text" value={foreignPackageWeight}
  onChange={(e) => {
    setForeignPackageWeight(e.target.value.replace(/[^0-9.]/g, ''))
  }}
/>

但是我的正则表达式允许像这样的数字 .1..23...45..... 如何将我的正则表达式更改为只允许一位小数点?

1 个答案:

答案 0 :(得分:2)

一种可能的解决方案是 lookaround 的一种形式,称为正向后视。环视可让您确保某个模式存在(或不存在),而该模式不会成为结果的一部分。

/[^0-9.]|(?<=\..*)\./g

匹配以下任何一项:

  • [^0-9.] 任何非数字或句点
  • (?<=\..*)\. 一个句号,只要另一个句号出现在序列中较早的位置
相关问题