Autor Zpráva
martinenecek
Profil
Zdravim do fora.

Mam trosku problem s regulernim vyrazem. Mam ve formulari polozku, kde se daji zapsat 2 cisla tudiz rozmezi 00-99 a potrebuji to osetrit tak, ze vsechno ostatni nez zadana hodnota 0,1,2,3.......,00,01,02,03.......... - 99 je chyba. Stejne tak chyba neni, kdyz je polozka prazdna, ale chyba je, kdyz je v poli jakykoliv znak ci pismeno.


nefunguje
if (ereg("[0-9]{2}",$delka_pobytu))
die ("chyba");

dekuji za radu
Hooonza
Profil *
[0-9]|[1-9][0-9]

viz příklady na http://www.regularnivyrazy.info/regularni-vyrazy-zaklady.html, test na http://www.regexp.cz/
Nox_lbc
Profil
jak nefunguje?

^[1-9]{1}([0-9]{1})?$
K.
Profil *
Pokud jsem to správně pochopil, tak musí projít i prázdný řetězec. Potom by řešení mohlo vypadat třeba takhle:

if (strlen($delka_pobytu) > 0 && !ereg("^[0-9]{1,2}$",$delka_pobytu)) die("chyba");
martinenecek
Profil
tak jsem to udelal podle vasich rad a uz je to OK, dekuji za vsechny rady :)
martinenecek
Profil
tak mel bych tu jeste jeden problem potrebuji regulerni vyraz kde se mohou zadat pouze cisla a maximalne jedna jedina tecka, nebo zadna


zde mi ignoruje prave jednu tecku a bere v poradku i tecky dve tri atd... coz je pro me spatne a potrebuji cisla a maximalne jednu nebo zadnou tecku

[0-9].?
nightfish
Profil
tečku musíš oescapovat - tohle je RE pro žádnou nebo jednu tečku
\.{0,1}
martinenecek
Profil
za hranatou zavorku patri jeste lomeno
martinenecek
Profil
To: nightfish aha vyzkousim dekuji :)
martinenecek
Profil
nejde a nevadi mu, ani kdyz zadavam carky.... coz je chyba
nightfish
Profil
co takhle?
^[1-9]+[0-9]*\.{0,1}[0-9]*$
martinenecek
Profil
To: nightfish

Bingo dekuji za radu, to je ono :)
Acci
Profil
Asi bych ještě pořešil, aby se mohla zadávat i čárka. Desetinná tečka v češtině totiž neexistuje, správně je pouze desetinná čárka.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0