我正在尝试验证浮点数的输入,其最大值为1.0
,最小值为0
。
Min : 0
Max : 1
可能的值;
0.1
0.99
0.365
我怎样才能用正则表达式取得成功?
答案 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+)?)$
让我知道我是否想念一些东西。