Gå til innhold

Trenger hjelp med en "lett" preg_match


Anbefalte innlegg

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 :p

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 av peskungen
Lenke til kommentar
Videoannonse
Annonse
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
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...