[PHP] Probleem met ereg()

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik deze ereg functie gebruik en ik vul 02/02/2002 als datum in doet geeft hij mijn error weer. Wat doe ik verkeerd want zover ik weet is die expressie goed...
code:

ereg() is een PHP functie waarmee je een string kunt checken of hij aan een zeker eis voldoet.

Voor degenen die niet zo bekend zijn in PHP en toch deze forum lightmod
en wat voor foutmelding je precies krijgt.
Deze PHP expressie checkt of mijn string in de europese datum formaat is dd/mm/yyyy en geeft een error weer ($error .= "enz") als dat niet zo is...

Ik heb deze code van een website, en wil graag van diegenen die een beetje goed bekend zijn in PHP en het expressie een beetje snappen, weten wat er aan de hand kan zijn, want 02/02/2002 is gewoon een normale datum

Als er nog verdere vragen zijn rondt mijn verzoek kan er altijd een reply gepost worden en dan antwoord ik wel.


code:
1
2
if(!ereg("(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|\/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))",$dateOfBirth))
         $error .= "<br> - Invalid Date Format<br><br>";

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

PHP heeft een hele mooie ingebouwde functie genaamd checkdate(), als je die nou gebruikt samen met een veel simpelere regexp, dat maakt het ook allemaal wat duidelijker :)

PHP:
1
2
$validDate = preg_replace('/^(\d{1,2})\/(\d{1,2})\/(\d{1}|\d{2}|\d{4})$/e', 'checkdate($2, $1, $3)', $dateOfBirth);
if ($validDate != 1) $error .= '<br> - Invalid Date Format<br><br>';

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt. Ben ik toch nog geholpen, wist niet dat dat meer gebeurde op GoT.

Het werkt trouwens dus hartstikke bedankt crisp. ;)

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 16 February 2003 @ 12:36:
Bedankt. Ben ik toch nog geholpen, wist niet dat dat meer gebeurde op GoT.

Het werkt trouwens dus hartstikke bedankt crisp. ;)
Tsja, code van een website af plukken en dan hier gaan vragen waarom 'ie niet werkt is iets wat we hier eigenlijk niet zo graag zien. En het feit dat een code ergens op een website staat wil niet zeggen dat dat ook meteen de beste oplossing is.
Een andere simpele datumcheck had je met wat zoekwerk zelf ook wel kunnen vinden; het is dat ik deze regel code nog ergens had staan (en misschien zijn er zelfs nog wel mooiere oplossingen)...

[ Voor 5% gewijzigd door crisp op 16-02-2003 12:43 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja dat snap ik. Ik heb ook heel de ereg() functie bestudeerd en zo. en ik heb het met een manual nagelopen, en dan doet hij het. Hij doet het ook op een test site. Daarom dat ik niet snapte waarom hij het niet deed. Ik heb het op een reg() validation reference site gevonden. en daarna nagelopen.

Maarja ik ben geholpen, dus het allemaal goed. Bedankt.

[ Voor 10% gewijzigd door Verwijderd op 16-02-2003 12:53 ]