【发布时间】:2019-04-04 12:16:00
【问题描述】:
我需要通过正则表达式验证文本输入。文本输入仅接受 0 到 2 之间的浮点数,否则会通过验证错误。目前我正在使用这个表达式
^\d+\.\d{0,2}$
但它只验证数字(1.0、2.0...)。以下是文本的有效/无效输入。
有效:
- 0
- 1
- 2
- 0.1
- 1.9
- 2.0
- 0.01
- 1.09
- 1.009
无效:
- -1
- 3
- 2.1
- 2.01
- 2.001
【问题讨论】:
-
当正则表达式是你的锤子时,一切看起来都像拇指。为什么不直接转换为浮点数并进行数值比较?
-
为什么不使用
parseFloat()解析它,然后使用<=和>=。看起来像:let num = parseFloat(str); let check = isNaN(num) && num>=0 && num<=2; -
试试
^(?:[01](?:\.\d+)?|2(?:\.0+)?)$demo -
可以写正则表达式来匹配pi吗? ????
标签: javascript regex validation numbers