Gå til innhold

Hjelp med eregi funksjonen


Anbefalte innlegg

Driver å validerer input fra brukere også sliter jeg med en eregi funksjon..

den slår ikke ut hvis det ulovlige tegnet er blandet med lovlige tegn.

 

if(!ereg("[A-Za-zÆØÅæøå]{4,30}",$navn)){

    $feil_navn="..inneholder ulovlige tegn";

}

Skriver jeg: 233333333 så slår den inn.

Skriver jeg: asdfj3fjd eller dfbn?fd så slår den ikke inn.

 

 

Noen som vet årsaken ?

Lenke til kommentar
Videoannonse
Annonse

Den slår ikke inn fordi det eneste som kreves er at 4 lovelige tegn kommer etterhverandre. Ved å sette på "start", ^, og "stopp", $, må alle tegn være lovelige, slik:

if(!ereg("^[A-Za-zÆØÅæøå]{4,30}$",$navn)){
   $feil_navn="..inneholder ulovlige tegn";
}

Endret av gnab
Lenke til kommentar
Den slår ikke inn fordi det eneste som kreves er at 4 lovelige tegn kommer etterhverandre. Ved å sette på "start", ^, og "stopp", $, må alle tegn være lovelige, slik:

if(!ereg("^[A-Za-zÆØÅæøå]{4,30}$",$navn)){
   $feil_navn="..inneholder ulovlige tegn";
}

Takk :)

men når jeg setter inn start og stopp tegn så betyr 4,30 at

det må være minst 4 tegn der og maks 30 ?

Lenke til kommentar
  • 3 uker senere...

Har fått litt problemer med funksjonen når det gjelder linjeskift..

den godtar ikke linje skift og så lurte jeg på hvordan jeg skulle skrive det,

har prøvd litt forskjellig men det ser ikke ut til å fungere.

Blant annet:

ereg("^[A-Za-zÆØÅæøå0-9!?,.:; \n]{4,}$",$melding)
ereg("^[A-Za-zÆØÅæøå0-9!?,.:; \\n]{4,}$",$melding)
ereg("^[A-Za-zÆØÅæøå0-9!?,.:; ][\n]{4,}$",$melding)

 

Andre forslag ?

Lenke til kommentar
bare legg inn linjeskift (\n) som et hvilket som helst annet tegn du vil godkjenne i din regexp

slik som dette ?

ereg("^[A-Za-zÆØÅæøå0-9!?,.:; \n]{4,}$",$melding)

Det får jeg ikke til å fungere. Skal det stå ett annet sted eller no?

Hr du prøvd med \\n ?

Lenke til kommentar
Hr du prøvd med \\n ?

\\n vil ikke funke fordi en da escaper en backslash og deretter en n. Regexen vil da matche "\" og "n". Ser at du ikke har escapet . i regexen din (tror den må escapes inni brackets også). Prøv den nedenfor?

 

Av en eller annen grunn har jeg alltid holdt meg unna ereg(i), jeg bruker heller f.eks. preg_match.

 

Har du forsøkt

preg_match("#[A-Za-zÆØÅæøå0-9!?,\.:; \n]{4,}#",$melding)

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å
×
×
  • Opprett ny...