Ralf: Problem mit regul. Ausdruck

Hi,

bis jetzt läuft mein Script in etwa so ab:

if($newname == "") {
.. sag, es darf nicht leer sein ...
exit;
} else {
$filename = "$newname";
}

Ich möchte jetzt noch hinzufügen, daß $newname nur Zahlen, Zeichen und Unterstrich haben darf. Also habe ich daraus fogendes gemacht:

if($newname == "") {
.. sag, es darf nicht leer sein ...
exit;
}
elseif (preg_match("/[1]*$/","$newname"))
{
... darf nur aus Buchstaben, Zahlen und Unterstrich bestehen ...
exit;
} else {
$filename = "$newname";
}

Problem: Das funktioniert nicht, leider passieren sämtlich Sonderzeichen meine Prüfung :-(

Weiß jemand, warum?

Grüße

Ralf


  1. a-zA-Z0-9_ ↩︎

  1. Hallo Ralf,

    Ich möchte jetzt noch hinzufügen, daß $newname nur Zahlen,
    Zeichen und Unterstrich haben darf.

    Dann kannst du das ganze so abkürzen:

    if(!preg_match('/^\w+$/',$newname)) {
      echo 'boehze!';
      exit;
    }

    $filename = $newname;

    Grüße,
     CK

    --
    Wenn der Schüler bereit ist, erscheint der Meister.
    1. if(!preg_match('/^\w+$/',$newname)) {
        echo 'boehze!';
        exit;
      }

      Hi Christian,

      danke, das läuft jetzt. Ich dachte immer, \w dürfte nur Buchstaben enthalten :-)
      Kann das sein, daß mein alter Code wegen des fehlenden ausrufezeichens nichts blockte?

      Grüße

      Ralf

      1. Hallo Ralf,

        danke, das läuft jetzt. Ich dachte immer, \w dürfte nur Buchstaben
        enthalten :-)

        \w ist dasselbe wie [0-9a-zA-Z_] :)

        Kann das sein, daß mein alter Code wegen des fehlenden
        ausrufezeichens nichts blockte?

        Ja. Deine Logik war einfach falsch.

        Grüße,
         CK

        --
        Zu wissen, was wir nicht wissen, ist die Quelle der Weisheit.