Comment faire la validation des nombres décimaux en PHP?Validation décimale + PHP?
:)
(Le point décimal est facultatif) il devrait accepter ... 0, 1, 2 , 0,123, 0,2 , 12,34 etc.
Comment faire la validation des nombres décimaux en PHP?Validation décimale + PHP?
:)
(Le point décimal est facultatif) il devrait accepter ... 0, 1, 2 , 0,123, 0,2 , 12,34 etc.
Would l'un d'entre eux convient à vos besoins?
suggéré is_float/is_numeric ne fonctionnera pas, car is_float n'accepte pas les paramètres de demande (qui sont des chaînes) et is_numeric acceptera quelque chose comme "+ .1e0" qui n'est pas ce que vous voulez. La manière fiable consiste à utiliser l'expression régulière pour la validation, par exemple
$is_decimal = preg_match('/^\d+(\.\d+)?$/', $some_string);
l'expression peut varier en fonction de vos besoins. Par exemple, ce qui précède acceptera également "000.00" ou "111111111111111".
Les réponses aux paramètres régionaux anglais ont déjà été publiées. Le NumberFormatter :: parse() prend soin d'autres endroits, si vous avez besoin de tels comportements:
$formatter = new NumberFormatter('de-DE', NumberFormatter::PATTERN_DECIMAL);
if ($formatter->parse($value) !== false) {
# A correct numeric value in german locale, like '12.345,00001'
}
Voir cette quesion liée http://stackoverflow.com/questions/2138899/how-to-determine-whether-a-variable -is-a-decimal-et-il-est-moins-que-0-01-in-php/2138917 # 2138917 – Gordon