Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP, numerojen tunnistus

Clacier [27.11.2010 21:38:57]

#

Terve.

Olen aikeissa tehdä sellaista yksinkertaista peliä jossa tekstikenttään syötetään summa joka tuplataan.

Tuplaa summa: [input]


Ongelma: Miten voin tarkistaa, että käyttäjän syöttämä sisältö on pelkästään numeroita?

Jaska [27.11.2010 21:55:59]

#

Luvun voi tarkistaa kokonaisluvuksi funktiolla is_int(). Jos syöte on tekstimuotoa, niin tarkista merkki kerrallaan, onko merkki numero.

function is_number($number) {
    $text = (string)$number;
    $textlen = mb_strlen($text);
    if ($textlen==0) return 0;
    for ($i=0;$i < $textlen;++$i) {
       $ch = ord($text[$i]);
       if (($ch<48) || ($ch>57)) return 0;
    }
    return 1;
}

tsuriga [27.11.2010 22:30:12]

#

Herp derp durr, is_numeric on keksitty. Riippuen pelistäsi, saattaa myös riittää intiksi castaaminen.

Jaska [27.11.2010 22:46:43]

#

Niin, mutta PHP.netin mukaan is_numeric hyväksyy myös 1e4:n luvuksi. Tässä haluttiin, että sisältö on pelkästään numeroita.

-tossu- [28.11.2010 00:51:05]

#

Jaska kirjoitti:

Niin, mutta PHP.netin mukaan is_numeric hyväksyy myös 1e4:n luvuksi. Tässä haluttiin, että sisältö on pelkästään numeroita.

Silloin voi käyttää strspn-funktiota.

$luku = 1337;
if (strspn ($luku, "0123456789") == strlen ($luku))
	echo "on numero";
else
	echo "ei ole numero";

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta