1.0
我正在尝试验证最大值为最小值的浮点数的输入0
。
Min : 0
Max : 1
可能的值;
0.1
0.99
0.365
我怎样才能用正则表达式成功?
作为 javascript 正则表达式文字:
/^(0(\.\d+)?|1(\.0+)?)$/
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
如果您需要它来匹配整个字符串,那么您将需要分别代表字符串开头和字符串结尾的插入符号和美元符号,如^(0(\.\d+)?|1\.0)$
此外,如果您想查找可能的负数,您需要在前面添加一个可选的减号,例如 in ^-?(0(\.\d+)?|1\.0)$
。当然,对于指数,模式需要改变。
而已:
/^(0+\.?|0*\.\d+|0*1(\.0*)?)$/
这个正则表达式应该做得很好:
/((0(\.[0-9]*)?)|(1(\.0)?))/
除非您计划匹配指数形式的浮点数。
这对我有用:
0+([.][0-9]+)?|1([.]0)?
还是我错过了什么?:)
这将匹配 [0,1] 中带有可选符号的浮点数,但如果使用科学记数法或数字以小数点开头,则不匹配。
\+?(0(\.[0-9]+)?|1(\.0+)?)
一个通用的解决方案:
^0*(?:(?:0(?:\.\d*)?|\.\d+)|1(?:\.0*)?)$
格式化:
^
0*
(?:
(?:
0
(?: \. \d* )?
| \. \d+
)
|
1
(?: \. 0* )?
)
$
只需阅读有关正则表达式的简介。希望这有效!
^(0.0*[1-9](\d+)?)$
让我知道我是否遗漏了什么。
^(?:(?<!\d*[1-9]\.?0*)(?:(?:0+(?:\.\d+)?)|(?:\.\d+)|(?:1(?!\.0*[1-9]+)(?:\.0+)?)))$
这将接受以下格式的数字 [0,1]
0
0.5
.5
1
1.0
1.000