peskungen Skrevet 12. februar 2009 Del Skrevet 12. februar 2009 (endret) Hei! Først vil jeg bare si at, JA, jeg har søkt først Jeg fant noe jeg trodde kunne hjelpe, men det fungerte ikke for meg. Det jeg skal gjøre er egentlig ganske enkelt og kan nok gjøres uten preg_match, men tror nok det blir det sikreste uansett. En bruker skal få lov til å skrive disse datoformatene: * 20 feb 2009 * 200209 * 20022009 Nå har jeg stresset lenge med preg_match og det vil bare ikke fungere. Det jeg sliter med er å få det til nøyaktig å sammenligne stringen med 2 tall f.eks. Noe jeg prøvde på var f.eks: $seperator = "[\ \]"; if(preg_match ("/[0-9]{2}{$seperator}[jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec]/i", "20 feb")) { echo 'match'; } Men det som viser seg er at den matcher også flere tall enn 2 stk. Hvis jeg f.eks skriver "200 feb", så blir det en match..... . Det skal også sies at jeg ikke har drevet på med preg_match før Men takker for all hjelp jeg kan få. Etter det jeg har sett i manualen for preg_match så stod det at [0-9]{2} sjekker for nøyaktig 2 tall.... noe den ikke gjør for meg :/ Endret 12. februar 2009 av peskungen Lenke til kommentar
OIS Skrevet 12. februar 2009 Del Skrevet 12. februar 2009 Men det som viser seg er at den matcher også flere tall enn 2 stk. Hvis jeg f.eks skriver "200 feb", så blir det en match..... Etter det jeg har sett i manualen for preg_match så stod det at [0-9]{2} sjekker for nøyaktig 2 tall.... noe den ikke gjør for meg :/ Du glemte ^ i begynnelsen så den hopper over alt før det den skal matche Denne godkjenner dag 00 og 32-39, måned 00 og 13-19. Du kan spesifisere den mer om du vil. $pattern = '#^\s*[0-3]\d\s*((jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)|([01]\d))\s*((19)|(20))?\d{2}\s*$#i'; Lenke til kommentar
peskungen Skrevet 12. februar 2009 Forfatter Del Skrevet 12. februar 2009 (endret) Takk Skal prøve den btw.... hva hjelper # for? Endret 12. februar 2009 av peskungen Lenke til kommentar
OIS Skrevet 12. februar 2009 Del Skrevet 12. februar 2009 btw.... hva hjelper # for? Første tegnet i regex er den som avgrenser regexen, altså når den finner tegnet igjen (som ikke escapet av \) da slutter regexen. Etter det kan du ha tegn som modifiserer kordan regex-motoren behandler søket. Siden / brukes ofte i slutt tagger til html, xml, bbcode, etc bruker eg heller # som er mer sjeldent noe du søker etter i en tekst. 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å