Autor Zpráva
Creon
Profil
Ahoj všichni,

narazil jsem na problém při zadávání dat do formuláře. Počítám s ním jednoduchý příklad, ale zarazila mne jedna věc. Pokud použiji např. číslo 74,5 není výsledek totožný jako kdybych použil číslo 74.5. Podle kalkulačky je výpočet vždy správný s "," v čísle. Nějak mi není jasné čím by to mohlo být.

Má otázka tedy zní jak se to dá řešit, případně bych uvítal možnost formuláři zdělit, že smí přijímat jen čísla a ",".

Děkuji za každý nápad.
Darker
Profil
Creon:
Podle kalkulačky je výpočet vždy správný s "," v čísle.
V češtině se desetinná čísla oddělují čárkou, v angličtině nikoliv, tam platí tečka.
Doporučuji akceptovat jak tečku, tak čárku a v PHP potom čárky nahrazovat tečkami.

jen čísla a ",".
var regexp=/[^0-9\,\.]/g
var text1 = "0,3";
var text2= "ble.";
if(!regexp.test(text1))alert("Text jedna neni OK");
if(!regexp.test(text2))alert("Text dva neni OK");


EDIT: Opraven reg vyraz
var regexp=/[0-9]+[,\.]?[0-9]?/g;
Creon
Profil
Darker:
Vyzkouším, díky.
Tori
Profil
Creon:
Co si php dosadí za čárku?
Nic, vezme čísla, která jsou před čárkou a použije je jako celé číslo (vizte manuál). Použila bych str_replace (čárky na tečky), eventuelně v kombinaci s floatval. Taky by nebylo od věci ošetřit podmínkou možnost, že někdo zadá tečku.

Od PHP 5.3 by mělo jít použít i NumberFormatter::parse.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0