Autor | Zpráva | ||
---|---|---|---|
Juras Profil * |
#1 · Zasláno: 24. 1. 2008, 12:27:23
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 |
#2 · Zasláno: 24. 1. 2008, 12:58:08
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 * |
#3 · Zasláno: 24. 1. 2008, 13:16:37
Mastodont
Děkuji to jsem přesně potřeboval, akorát jsem musel změnit \d\d na [0-9]{2}. |
||
Juras Profil * |
#4 · Zasláno: 24. 1. 2008, 13:35:02
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]) Jak lze tedy předělat výraz pro dny tak aby nevyhověl podmínce 0123? Děkuji za odpověď. |
||
Časová prodleva: 16 let
|
0