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.
İ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.