求“比例”的正则表达式

我是帅帅的玉米
  • 609

求一个匹配“比例”正则表达式:

要求大于等于0小于等于1,如:0,0.234,1...这些,同时又可以为空
回复
阅读 3.4k
6 个回答
Xeira
  • 4.1k
✓ 已被采纳

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)$

神的尾巴
  • 2.2k

比较简单的写法: /(0(\.[0-9]+)?|1)?/

clipboard.png

========== 上面是原答案 ==============

更新下:/^(?:0(?:\.[0-9]+)?|1)?$/

我是帅帅的玉米
  • 609

之前写成:^$|0\.[0-9]+$|0|1,
之前写的是“0.[0-9]+$”,表示匹配0.*的数,然后加上或空或0或1就以为解决了,然后后面发现0123和1234这种都能通过。

chenyou
  • 2
新手上路,请多包涵

/^(0|1|(0\.[0-9]+))$/

应该能满足你所有的需求了:

/^((0\.[0-9]*[1-9])|0|1|)$/
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏