Avatar billede panikspreder Nybegynder
21. januar 2004 - 02:25 Der er 11 kommentarer

preg_match løsning?

Hejsa! Har et stykke kode som jeg ikke kan få til at virke når jeg prøver på at kode videre på det.

<?php
$brugernavn = strtolower("PanikSpreder");

if(preg_match("/[^a-z0-9]/i", $brugernavn)) {
    echo "Kodeord er ugyldigt!";
} else {
    echo "Kodeord er gyldigt!";
}
?>

Meningen er at man kan indtaste et brugernavn, men det er kun hvis den string ($brugernavn) består af almindelig bogstaver:

(a-z og 0-9)

samt de 5 tegn:

^ - | _ ~

... at det er gyldigt. Men hvordan får jeg preg_match til at makke ret?

-PanikSpreder
www.blastzone.dk
Avatar billede 7th Praktikant
21. januar 2004 - 02:37 #1
if (eregi ("^[a-z0-9]+$" , $brugernavn)) {
  echo "Kodeord er ugyldigt!";
} else {
    echo "Kodeord er gyldigt!";
}
Avatar billede 7th Praktikant
21. januar 2004 - 02:41 #2
if (preg_match("/^[-A-Za-z0-9_]$/" , $brugernavn)) {
  echo "Kodeord er ugyldigt!";
} else {
    echo "Kodeord er gyldigt!";
}

if (preg_match ("^[-\w]+$" , $brugernavn)) {
  echo "Kodeord er ugyldigt!";
} else {
    echo "Kodeord er gyldigt!";
}

Så kan du selv vælge hvad du vil bruge :o)
Avatar billede 7th Praktikant
21. januar 2004 - 02:42 #3
Hov, sorry...

preg_match("/^[A-Za-z0-9]$/" , $brugernavn)

\w betyder a-z, 0-9 OG _, så den skal du nok ikke bruge.
Avatar billede panikspreder Nybegynder
21. januar 2004 - 02:43 #4
Det hjalp ikke særlig meget. Kan stadigvæk ikke tilføje de fem tegn som jeg nævnte for oven...
Avatar billede 7th Praktikant
21. januar 2004 - 02:45 #5
Det er fordi vi begge to sover ;o) Du har byttet om på de to sætninger "Kodeord er ugyldigt!" og "Kodeord er gyldigt!".
Avatar billede panikspreder Nybegynder
21. januar 2004 - 02:50 #6
hehe prøver lige igen, så :o)
Avatar billede panikspreder Nybegynder
21. januar 2004 - 02:52 #7
Den siger det her når jeg tager den nederste:

Warning: No ending delimiter '^' found ...

Hvad betyder $ egentlig?
Avatar billede 7th Praktikant
21. januar 2004 - 02:55 #8
Hmm jeg kan heller ikke få den pre_match til at virke. Denne virker dog fint.

<?php
$brugernavn = "PanikSpreder";

if (eregi ("^[a-z0-9]+$" , strtolower ($brugernavn)))
{
    echo "Kodeord er gyldigt!";
}

    else
    {
        echo "Kodeord er ugyldigt!";
    }
?>
Avatar billede 7th Praktikant
21. januar 2004 - 03:05 #9
Hmm der manglede åbentbart et + før $. Nu skulle den gerne virke.

<?php
$brugernavn = "PanikSpreder";

if (preg_match ("/^[A-Za-z0-9]+$/" , strtolower ($brugernavn)))
{
    echo "Kodeord er gyldigt!";
}

    else
    {
        echo "Kodeord er ugyldigt!";
    }
?>
Avatar billede squashguy Nybegynder
21. januar 2004 - 08:21 #10
hvorfor den der strtolower()? /i bruges netop til at matche store og små bogstaver..

if(preg_match("/^[-^a-z0-9|_~]+$/i", $brugernavn)){

Den første ^ bestyder at ingen tegn kan stå foran
$ betyder at intet kan stå bagefter
Avatar billede panikspreder Nybegynder
21. januar 2004 - 10:54 #11
Yeah, nu virker det... tak, squashguy *S*

PanikSpreder
www.blastzone.dk
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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