如何在 PHP 中进行十进制数验证?
:)
(小数点是可选的)它应该接受... 0 , 1 , 2 , 0.123 , 0.2 , 12.34 等。
如何在 PHP 中进行十进制数验证?
:)
(小数点是可选的)它应该接受... 0 , 1 , 2 , 0.123 , 0.2 , 12.34 等。
这些中的任何一个都适合您的需求吗?
已经发布了英语语言环境的答案。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'
}
建议的 is_float/is_numeric 不起作用,因为 is_float 不接受请求参数(它们是字符串),并且 is_numeric 将接受类似于 "+.1e0" 的东西,这不是你想要的。可靠的方法是使用正则表达式进行验证,例如
$is_decimal = preg_match('/^\d+(\.\d+)?$/', $some_string);
表达式可能会因您的需要而异。例如,上面也将接受“000.00”或“111111111111111”。
使用is_float ...