浮点数正则表达式介于0和1之间

时间:2013-01-22 15:21:54

标签: regex

我正在尝试验证浮点数的输入,其最大值为1.0,最小值为0

Min : 0
Max : 1

可能的值;

0.1
0.99
0.365

我怎样才能用正则表达式取得成功?

9 个答案:

答案 0 :(得分:6)

作为javascript正则表达式文字:

 /^(0(\.\d+)?|1(\.0+)?)$/

答案 1 :(得分:5)

0(\.\d+)?|1\.0

解释:

0            # a zero
(\.\d+)?     # a dot and min 1 numeric digit - this is made optional by ?
|            # or
1\.0         # one, a dot and a zero

如果你需要这个匹配整个sring那么你将需要插入符号和表示字符串开头和字符串结尾的美元符号,分别如^(0(\.\d+)?|1\.0)$

此外,如果您想查找可能的负数,您需要在^-?(0(\.\d+)?|1\.0)$之前添加一个可选的减号。对于指数,模式当然需要改变。

答案 2 :(得分:2)

这个RegEx应该没问题:

/((0(\.[0-9]*)?)|(1(\.0)?))/

除非您计划匹配指数形式的浮点。

答案 3 :(得分:2)

这对我有用:

0+([.][0-9]+)?|1([.]0)?

或者我错过了什么? :)

答案 4 :(得分:2)

就是这样:

/^(0+\.?|0*\.\d+|0*1(\.0*)?)$/

答案 5 :(得分:1)

这将使[0,1]中的浮点数与可选符号匹配,但如果使用科学记数法或数字以小数点开头,则不会匹配。

\+?(0(\.[0-9]+)?|1(\.0+)?)

答案 6 :(得分:1)

一般解决方案:

^0*(?:(?:0(?:\.\d*)?|\.\d+)|1(?:\.0*)?)$

格式化:

 ^     
 0* 
 (?:
      (?:
           0 
           (?: \. \d* )?
        |  \. \d+ 
      )
   |  
      1 
      (?: \. 0* )?
 )
 $

答案 7 :(得分:0)

^(?:(?<!\d*[1-9]\.?0*)(?:(?:0+(?:\.\d+)?)|(?:\.\d+)|(?:1(?!\.0*[1-9]+)(?:\.0+)?)))$

这将接受以下格式的数字[0,1]

0 0.5 .5 1 1.0 1.000

答案 8 :(得分:0)

只需阅读有关正则表达式的摘要。 希望这行得通!

^(0.0*[1-9](\d+)?)$

让我知道我是否想念一些东西。