2

如何在 PHP 中进行十进制数验证?

:)

(小数点是可选的)它应该接受... 0 , 1 , 2 , 0.123 , 0.2 , 12.34 等。

4

4 回答 4

9

这些中的任何一个都适合您的需求吗?

于 2010-02-09T09:49:54.607 回答
5

已经发布了英语语言环境的答案。NumberFormatter :: parse()负责其他语言环境,如果您需要这样的行为:

$formatter = new NumberFormatter('de-DE', NumberFormatter::PATTERN_DECIMAL);
if ($formatter->parse($value) !== false) {
    # A correct numeric value in german locale, like '12.345,00001'
}
于 2010-02-09T10:02:38.983 回答
3

建议的 is_float/is_numeric 不起作用,因为 is_float 不接受请求参数(它们是字符串),并且 is_numeric 将接受类似于 "+.1e0" 的东西,这不是你想要的。可靠的方法是使用正则表达式进行验证,例如

 $is_decimal = preg_match('/^\d+(\.\d+)?$/', $some_string);

表达式可能会因您的需要而异。例如,上面也将接受“000.00”或“111111111111111”。

于 2010-02-09T10:00:18.050 回答
2

使用is_float ...

于 2010-02-09T09:51:54.613 回答