Autor Zpráva
Juras
Profil *
Dobrý den,
mám reg. výraz pro datum a potřebuji aby vyhověla pouze podmínka YYYY-MM-DD.

if (eregi("(19|20)[0-9]{2}-0[1-9]|1[0-2]-0[1-9]|[12][0-9]|3[01]", $_POST["datum"])) {
  echo "dobre datum";
}
else {
  echo "špatne datum";
}


Bohužel tam mám někde chybu a nemůžu přijít na to kde.
Mylsím, že je to někde v těch - (mínusech mezi číslama), ale zkuušel jsem i jiné kombinace a pořád to vypisuje dobré datum a to i když tam napíšu třeba 11111111.

Špatné datum mi to vypíše jedině, když místo čísel zadám písmena (asdfasf).

Prosím poraďte mi jak opravit reg. výraz aby "fungoval".

Děkuji předem.
Mastodont
Profil
S různými oddělovači:
(19|20)\d\d[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])
Juras
Profil *
Mastodont
Děkuji to jsem přesně potřeboval, akorát jsem musel změnit \d\d na [0-9]{2}.
Juras
Profil *
Ještě jsem natrefil na jeden problém.

(0[1-9]|[12][0-9]|3[01])


Je den 01-31, ale vyhoví i podmínka 054323.
Vpodstatě vyhoví vše co začíná nulou.

U měsíců mám tento výraz
(0[1-9]|1[012])
a tam to nedělá. Tam kdy zadám 013, tak to vypíše chybu.

Jak lze tedy předělat výraz pro dny tak aby nevyhověl podmínce 0123?

Děkuji za odpověď.

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: