我不是计算机科学人,我正在试图弄清楚如何防止用户输入多个小数点。例如,如何阻止某人输入3..5?
答案 0 :(得分:1)
问题中给出的背景几乎不存在,但正确的方法是尝试使用您正在使用的任何语言解析输入,如果失败,则拒绝它。但如果你想要一个正则表达式:
^\d+\.\d+$ # allows numbers with a single decimal point;
fails if it doesn't have one
^\d+(\.\d+)?$ # allows numbers with a decimal point or without one
请注意,这些正则表达式允许小数点两边的数字位数不受限制。如果您想指定位数,可以使用{m...n}
代替+
量词:
^\d{1,3}\.\d{1,3}$ # allows numbers from 0.0 to 999.999
编辑:如果你想允许像tchrist建议的那样输入.25
形式,你可以使用:
^\d*\.\d+?$
答案 1 :(得分:0)
对于浮点数,即###。##,您可以匹配
^[0-9]+[.]{1}[0-9]{1,2}$
这将允许任意数量的数字,后跟一个小数(必填),后跟一个或两个数字。
答案 2 :(得分:0)
试试这个:
m{
^ (?: \. \d{1,2} # eg: ".25"
| \d+ # eg: "2343409823409823049823094823094820389402984230948"
(?:
\. \d{0,2}
)? # eg: "186282.42"
)
$
}x