仅适用于从 0 到 1 到 2 个十进制数字的正小数的正则表达式,仅适用于无需登录 JavaScript 的情况?

dea*_*904 1 javascript regex

我基本上想要一个 RGBA 中 alpha 的正则表达式,它始终是 0 和 1 之间的正数。但是,我希望它最多只有 2 位数字,例如0.53& 不超过0.536.

允许

0 到 1 之间的任何值,但最多保留 2 位小数

0
0.0
0.00
0.1
0.12
0.34
1
1.0
1.00
Run Code Online (Sandbox Code Playgroud)

不允许

0 到 1 之外的任何内容,如果它介于 0 到 1 之间,则它应该小于或等于小数点后 2 位,甚至不允许使用符号

0.123
90
3
-1
+1
Run Code Online (Sandbox Code Playgroud)

我注意到其他类似的问题,但它们允许符号或允许超过 2 个小数位。

目前,我有一个像/^(0+\.?|0*\.\d+|0*1(\.0*)?)$/允许超过 2 个小数位的正则表达式。我该如何解决?

anu*_*ava 5

您可以使用:

^(?:0(?:\.[0-9]{1,2})?|1(?:\.00?)?)$
Run Code Online (Sandbox Code Playgroud)

正则表达式演示

正则表达式详情:

  • ^: 开始
  • (?:: 开始一个非捕获组
    • 0: 比赛 0
    • (?:\.[0-9]{1,2})?: 匹配可选的点,后跟 1 或 2 位数字
    • |: 或者
    • 1: 比赛 1
    • (?:\.00?)?:在点后匹配可选的1 或 2 个零
  • ): 结束非捕获组
  • $: 结尾