求一个匹配“比例”正则表达式:
要求大于等于0小于等于1,如:0,0.234,1...这些,同时又可以为空
比较简单的写法: /(0(\.[0-9]+)?|1)?/
========== 上面是原答案 ==============
更新下:/^(?:0(?:\.[0-9]+)?|1)?$/
之前写成:^$|0\.[0-9]+$|0|1,
之前写的是“0.[0-9]+$”,表示匹配0.*的数,然后加上或空或0或1就以为解决了,然后后面发现0123和1234这种都能通过。
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
RegExp("^(?:0(?:.[0-9]+){0,1}|1)$").test('0134') 为true是因为你少了
.[0-9]+
前的两个\\
如果你写 RegExp("^(?:0(?:\\.[0-9]+){0,1}|1)$").test('0134') 它就是false了
发现还能短短
^(?:0(?:\.\d+)?|1)$