24. februar 2007 - 13:30Der er
12 kommentarer og 1 løsning
kort Regular Expressions spørgsmål
Jeg har siddet og leget lidt med Regular Expressions, men er i tvivl om det er rigtig hvad jeg har gjort. Det virker fint, men det kan være jeg har overset en lille ting. håber der er en som hurtigt vil kigge på det.
det jeg vil er at tjekke om formatet i start er XX:XX:XX hvor X er lig med tal
godt jeg spurgte herinde der var lige en del ting jeg ikke havde taget højde for så hæver lige points. Vil det være bedre at dele tiden op i timer, minutter og sekunder og så tjekke om timer ligger mellem 00 og 23 og minutter og sekunder ligger mellem 00 og 59 og istedet for preg_match så bruge is_numeric på timer, minutter og sekunder?
for: 1) 7:00:00" (er lovilgt at skrive) 2) "99:99:99" (er ikke lovligt da det skal være et gyldigt klokkeslet mellem 00:00:00 og 23:59:59)
Den med explode er kun god nok, hvis den er smuttet igennem vores preg_match først. Og så behøver du ikke tjekke om den er større end 0 - det vil den være.
Vi kan jo lege med med regulære udtryk (selv om jeg måske nok synes det grænser til misbrug). F.ex for klokkeslet
if (preg_match("/^(0?[0-9]|1[0-9]|2[0-3]):[0-9]{2}:[0-9]{2}$/", $start))
eneste lille minus er at man skal skrive 2 tal alle tre steder jeg har prøvet dette, som ikke virker if (preg_match("/^(\d{1}|{2}:){1}|{2}\d{1}|{2}$/", $start)) og dette if (preg_match("/^(\d{1|2}:){1|2}\d{1|2}$/", $start))
jeg har ikke leget meget med ,men har fundet ud af at | betyder 'eller', men det skal sikkert indsættes på en anden måde
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.