luser32 Skrevet 22. mars 2006 Skrevet 22. mars 2006 Sliter med å få valideringen av dato og tid til å funke med preg_match, noen som kan se hva som er feil i scriptet? $post_dato = 22. mars $post_tid = 20:55 if(preg_match("[^[01-31]{1,2}.[ ]{0,1}[a-z]{3,5}$]", $post_dato) && preg_match("[^[01-24]{2}:[00-59]{2,2}$]", $post_tid))
luser32 Skrevet 22. mars 2006 Forfatter Skrevet 22. mars 2006 Åja:P Fikset det nå, men tror ikke det hjalp, får fortsatt feil selv om jeg skriver rikitig dato:S
stiber Skrevet 22. mars 2006 Skrevet 22. mars 2006 Oh man! Have you got it wrong... En character class (Det som står mellom []) representerer bare ETT tegn. Når du skriver [01-31] så vil ikke regexmotoren skjønne at den skal sjekke to tegn. Den vil bare godta ETT tegn som er enten 0, 1, 2 eller 3. Med {1,2} bakom så får du klassen til å kunne matche 2 tegn, men fortsatt bare med kombinasjonene av 0,1,2 eller 3. Omskrevet så må du skrive ([0-2]?[0-9]|3[01]). Dette betyr: mulig 0-2 etterfulgt av 0-9 eller 3 etterfulgt av 0 eller 1. Så var det klokka da. Vanligvis så vil den gå fra 00:00 - 23:59, og ikke fra 01:00 - 24:59 Og siden regex ikke skjønner hva du mener med [01-24] eller [00-59], så må vi skrive om. Timer: [01][0-9]|2[0-3] Minutter: [0-5][0-9] Resultatet blir da sånn ca.: if (preg_match("[^([0-2]?[0-9]|3[01])\. ?[a-z]{3,5}$]",$post_dato) && preg_match("[^([0-1][0-9]|2[0-3]):[0-5][0-9]$]",$post_tid))
trondes Skrevet 22. mars 2006 Skrevet 22. mars 2006 Oh man! Have you got it wrong... 5797088[/snapback] wow... så bra forklart at til og med jeg forsto det.. du vil vel ikke skrive en tutorials om dette emnet vel ?
stiber Skrevet 23. mars 2006 Skrevet 23. mars 2006 Ehh. Føler ikke at jeg har tid til å skrive tutorial på noe så omfattende som regular expressions for øyeblikket. Men jeg ser helt klart nytten i en god norsk tutorial. Til nå har jeg henvendt folk som vil lære mer til disse sidene: php manualen... http://en.wikipedia.org/wiki/Regex http://www.regular-expression.info/ Ellers så er jo denne et must for de som mener det... +pocket-guiden. Utdrag av PHP biten fra pocketguiden
luser32 Skrevet 23. mars 2006 Forfatter Skrevet 23. mars 2006 if (preg_match("[^([0-2]?[0-9]|3[01])\. ?[a-z]{3,5}$]",$post_dato) && preg_match("[^([0-1][0-9]|2[0-3]):[0-5][0-9]$]",$post_tid)) Men den der var jo litt smartere, var litt redd for at det var noe såmnnt jeg hadde gjort galt, men men. Skal sjekke nå
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå