luser32 Skrevet 22. mars 2006 Del 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)) Lenke til kommentar
Magnus Holm Skrevet 22. mars 2006 Del Skrevet 22. mars 2006 . er wildcard. Skal du ha punktum bruk: \. Lenke til kommentar
luser32 Skrevet 22. mars 2006 Forfatter Del 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 Lenke til kommentar
stiber Skrevet 22. mars 2006 Del 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)) Lenke til kommentar
trondes Skrevet 22. mars 2006 Del 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 ? Lenke til kommentar
stiber Skrevet 23. mars 2006 Del 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 Lenke til kommentar
luser32 Skrevet 23. mars 2006 Forfatter Del 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å Lenke til kommentar
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å