Autor Zpráva
leorond
Profil
Dobré poledne, mám tu jeden menší problém a nedaří se mi ho vyřešit.

Vytvořil jsem si funkci pro kontrolu vkládání pouze čísel a mám problém s její funkčností

Moje funkce

function cele_cislo($cislo)    {
    if(!preg_match('/^[1-9]{1}[0-9]*$/', $cislo))    {
        return true;
    }    else {
        return false;
    }
}

funkce ale nefunguje a to i po vložení jiných regulárních výrazů.

Některé se tváří že fungují správně ale pokud vložím do input hodnotu například 123456f, hodnota projde jako by obsahovala pouze čísla a naopak pokud vložím hodnotu f123456, hodnota neprojde.

Věděl by jste mi někdo poradit kde dělám chybu?
Keeehi
Profil
leorond:
Díky tomu vykřičníku před preg_match to dává přesně opačné výsledky, než by člověk čekal. Je ale nemožné aby to dávalo jiný výsledek pro 123456f a f123456. Pro oba to vrací true. Pro 123456 to vrací false.

Když se to trochu učeše, může to vypadat takto.
leorond
Profil
Funkce kterou jsem napsal kontroluje pouze zda řetězec začíná číslem větším než 0 pokud ho upravím takto ^[1-9]{1}[0-9], kontroluje celý řetězec až na poslední znak kde projde jakékoliv písmeno.


Keeehi:
Omlouvám se ten vykřičník mi ulétl ve svém kódu ho nemám ale to nebyl ten problém který jsem hledal, problém byl že jsem použil funkci intval(); a ta zapříčinila chybu.

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: