Autor | Zpráva | ||
---|---|---|---|
leorond Profil |
#1 · Zasláno: 23. 1. 2017, 11:54:42
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 |
#2 · Zasláno: 23. 1. 2017, 12:19:23
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.
|
||
Časová prodleva: 7 let
|
0