Avatar billede mikze Nybegynder
23. juli 2005 - 12:56 Der er 18 kommentarer og
1 løsning

tjek streng for ulovlige tegn

Jeg leder efter et stykke PHP kode som skal tjekke en streng(variabel) for "ulovlige tegn". Det er noget med ereg.

Det skal være sådan:
* Må indeholde bogstaver fra a-å og A-Å
* Må indeholde tal
* Må ikke starte eller slutte på mellemrum

Jeg fandt dette kode i et andet spørgsmål, som jeg ikke lige fik til at virke:

if(ereg("^[a-zA-Z0-9æøåÆØÅ ]+$",$minstreng)) {
echo "Ingen fejl";
} else {
echo "fejl";
}
Avatar billede fixxxer Nybegynder
23. juli 2005 - 13:00 #1
brug trim() til at fjerne mellemrum i starten og i slutningen af strengen..
Avatar billede mikze Nybegynder
23. juli 2005 - 13:13 #2
Ikke det svar jeg ledte efter. Desværre.
Avatar billede fixxxer Nybegynder
23. juli 2005 - 13:16 #3
Det var nu heller ikke ment som et svar !-)

  -- men en måde du kan undgå at brugere opretter navne hvor der er mellemrum først eller sidst i navnet.

Uden tvivl at det kan laves i reg. expr. - men hvorfor gå over åen efter vand ?-)
Avatar billede Slettet bruger
23. juli 2005 - 13:30 #4
if(preg_match("/^[a-zA-Z0-9æøåÆØÅ]*[a-zA-Z0-9æøåÆØÅ|\s]+[a-zA-Z0-9æøåÆØÅ]*$/", $minstreng))

Jeg vil tro den kan klare det.. Jeg ved ikke om æøå indgår i \w, hvis de gør, vil det kunne laves meget nemmere
Avatar billede Slettet bruger
23. juli 2005 - 13:31 #5
eller:

if(strlen(trim($streng)) == strlen($streng))
    {
    if(preg_match("/^[a-zA-Z0-9æøåÆØÅ|\s]+$/", $minstreng))
        {
        die("ingen fejl");
        }
    }
echo "fejl";
Avatar billede Slettet bruger
23. juli 2005 - 13:33 #6
Den kan også laves sådan her:

if(strlen(trim($streng)) == strlen($streng))
    {
    if(preg_match("/^[a-z0-9æøåÆØÅ ]+$/i", $minstreng))
        {
        die("ingen fejl");
        }
    }
echo "fejl";
Avatar billede Slettet bruger
23. juli 2005 - 13:34 #7
if(strlen(trim($streng)) == strlen($streng))
    {
    if(preg_match("/^[æøåÆØÅ\s\w]+$/", $minstreng))
        {
        die("ingen fejl");
        }
    }
echo "fejl";

Måske også sådan... du kan jo selv prøve at lege med det.. de bør allesammen give samme resultat
Avatar billede mikze Nybegynder
23. juli 2005 - 14:09 #8
if(strlen(trim($streng)) == strlen($streng))

hvad gør den linje??
Avatar billede fixxxer Nybegynder
23. juli 2005 - 14:12 #9
den sammenligner om strengen, efter trim() er lige så lang som strengen uden trim()

hvis ikke er der mellemrum i starten eller i slutningen af strengen
Avatar billede Slettet bruger
23. juli 2005 - 14:13 #10
Præcis.
Avatar billede mikze Nybegynder
23. juli 2005 - 14:28 #11
if(strlen(trim($streng)) == strlen($streng))
    {
    if(preg_match("/^[æøåÆØÅ\s\w]+$/", $minstreng))
        {
        die("ingen fejl");
        }
    }
echo "fejl";


Den virker ikke HELT
Avatar billede mikze Nybegynder
23. juli 2005 - 14:29 #12
det nederste ved jeg ikke hvorfor lige blev postet, det skulle det ikke, for det virker jo :-)
Avatar billede Slettet bruger
23. juli 2005 - 14:31 #13
Det er jeg glad for at høre ;)
Avatar billede Slettet bruger
23. juli 2005 - 14:31 #14
Hvis der er andet, kan du bare lige sige til.
Avatar billede fixxxer Nybegynder
23. juli 2005 - 15:28 #15
Det er dog alligvel lidt underligt at du skriver "Ikke det svar jeg ledte efter. Desværre."..

  og at det så var den metode du slutter af med at bruge !-)
Avatar billede Slettet bruger
23. juli 2005 - 16:50 #16
Han har sikkert, som jeg også gjorde det, forstået det sådan, at du ville have ham til at lave en simpel $minstreng = trim($minstreng);
Avatar billede mikze Nybegynder
25. juli 2005 - 16:13 #17
Præcis.
Avatar billede fixxxer Nybegynder
25. juli 2005 - 17:57 #18
Hvordan han fortolker min kommentar er hans eget "problem".. Det er tilladt at stille spørgsmål til kommentarer - det er vel egentlig det dette forum har til formål ?-)
Avatar billede Slettet bruger
25. juli 2005 - 18:21 #19
Ja det er det lige præcis ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester