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