Ondalık doğrulama + PHP?

4 Cevap php

PHP ondalık sayı doğrulama yapmak nasıl?

:)

(The decimal point is optional) it should accept ... 0 , 1 , 2 , 0.123 , 0.2 , 12.34 etc.

4 Cevap

Bunlardan herhangi gereksinimlerinizi?

İngilizce yereli için cevaplar zaten yayınlanmıştır. Eğer böyle bir davranış gerekiyorsa NumberFormatter :: parse(), diğer yerel ilgilenir:

$formatter = new NumberFormatter('de-DE', NumberFormatter::PATTERN_DECIMAL);
if ($formatter->parse($value) !== false) {
    # A correct numeric value in german locale, like '12.345,00001'
}

Kullan is_float ...

is_float (dizeler) istek parametrelerini kabul etmez ve is_numeric ne istediğiniz değil "+ 0,1 e0" gibi bir şey kabul eder, çünkü önerilen is_float / is_numeric, çalışmaz. Güvenilir yolu, örneğin, doğrulama için normal ifadeyi kullanmak için

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

ifadesi sizin ihtiyaçlarınıza bağlı olarak değişebilir. Örneğin, yukarıda da "000.00" veya "111111111111111" kabul eder.