Autor Zpráva
Pavel Dumbrovský
Profil
Zdravím,
snažím se vytáhnout část URL a zjistit, jestli vyhovuje podmínkám celé kladné číslo, které nezačíná nulou.

return ereg("^[1-9]?[1234567890]+$",$cislo);


V regulárech začínám, ale nerozumím tomu, proč tohle nefunguje. Respektive vezme to i číslo začínající nulou, jinak to funguje.
V čem je chyba?
Děkuju,
Dumbrovský
DoubleThink
Profil *
Máš opačně + a ?
nightfish
Profil
Pavel Dumbrovský:
V čem je chyba?
řekl bych, že v tom otazníku
další je v tom, že používáš funkci ereg(), která byla označena jako zavržená a v budoucnu bude odstraněna
lepší bude
return preg_match('~^[1-9]\d*$~', $cislo);

kde
~ je oddělovač výrazu (musí být na začátku i na konci regulárního výrazu; za koncovým oddělovačem mohou následovat modifikátory)
^ je začátek řetězce
$ je konec řetězce
[1-9] - právě jedno celé číslo z intervalu 1 až 9
\d - libovolná číslice
* - vztahuje se k \d - počet opakování 0 a více
Pavel Dumbrovský
Profil
DoubleThink:
Máš opačně + a ?
Prohodil jsem to a nebude to úplně ono s tou nulou.
Vyhoví: 10, 110, 1110,...
Nevyhoví: 101, 1101,


nightfish:
Děkuju za tip, jdu to zkusit.
Pavel Dumbrovský
Profil
nightfish:
Zdá se, že to funguje suprově, děkuju. Neměl bys link na stránku, kde by byly vysvětelný reguláry v kombinaci s preg_match?
nightfish
Profil
Pavel Dumbrovský:
Prohodil jsem to a nebude to úplně ono s tou nulou.
protože v případě prohození by mohla být nula jen na posledním místě nebo vůbec

Neměl bys link na stránku, kde by byly vysvětelný reguláry v kombinaci s preg_match?
musím tě odkázat přímo do manuálu, tam je to popsané dost podrobně

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: