[REGEX] preg_match frage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [REGEX] preg_match frage

    Hi!

    Ich hab ne frage zu preg_match:
    Ich will das kein . oder - oder _ (<leertaste) vor einem namen stehen dürfen, aber hinter einem namen darf ein . oder - oder _ stehen.
    Ausserdem soll die Angabe von "Dr. Nudel" möglich sein aber nicht von ".- Dr. .- Nudel" es soll aber auch möglich sein "Dr. Hans-Dieter Nudel" einzugeben. Zahlen und alles andere sollen sowieso davon ausgeschlossen sein..

    Ihr wisst schon einfach eni filter der nur logische Namen zulässt..
    Hoffe ihr könnt mir weiterhelfen.

    Hier ist der CODE:


    PHP-Code:
    $name 'Dr. Nudel';
    $result preg_match('/
                        ^[A-Z]
                        ([A-z]*)
                        ([\-|(\.)|(\s\b)][A-Z])
                        ?([A-z]+)\.?$
                        /'
    $name);

     echo (
    $result == FALSE)?'NOK':'O.K.'



    //OK
    //$name = "Tarzan";
    //$name = "Tarzan Jane";
    //$name = "A-b";
    //$name = "Ali H. M.";
    //$name = "Tarzan-Nudel M.";
    //$name = "Dr. Hans-Dieter Nudel";

    //NOK
    //$name = "123";
    //$name = "-A-Z";#
    ////$name = "ali";
    //$name = "A-";
    //$name = "Ali123";
    //$name = "123Ali";
    //$name = "12-3";
    //$name = "12.3";
    //$name = "-a";
    //$name = "Ali-Alf";
    //$name = "ali-alf";
    //$name = ".Ali";
    //$name = ".";
    //$name = "";
    //$name = "<b>";

  • #2
    Schon auf regexlib.com gesucht?

    Und gleich noch ein paar Tests:
    - O'Reilly / O' Reilly
    - McPaper / Mc Paper
    - PhD. John F. Kennedy / Ph.D. John F. Kennedy / Ph. D. John F. Kennedy
    - Dr. med. Dipl.-Ing. Jürgen L. Dräger
    - Bill Gates Jr. / Bill Gates sen.
    - William Henry IV
    - Sir Elton John / Joseph Wilhelm Friedrich Prinz von Hohenzollern-Hechingen

    Wozu brauchst du das eigentlich?

    Kommentar


    • #3
      Ich habe werte in einer MySQL Datenbank wie namen von Angestellten $name, $firstName, $streetName usw... die über PHP abgefragt, geändert, gesperrt, oder gelöscht werden können sollen..

      Tja ich habe bis jetzt nur die Abfrage aller werte geschafft..
      Aber die änderung der Angezeigten werte hab ich noch nicht ganz hinbekommen. ich meine es muss ja geprüft werden was eingegeben wird..
      Und wenn irgend ein Quark eingegeben wird soll eine Meldung erscheinen mit zum Beispiel "Bitte überprüfen Sie ihr eingabe".

      Ich habe ein Formular wo man dann Werte in der Datenbank eintragen, austragen oder ändern können soll.
      Das problem ist nur, dass ich falsche änderungen ausschliessen will.

      Im folgendem Script funktioniert einiges noch nicht wie es soll..
      Wenn der Name "Dr. med. Dipl.-Ing. Jürgen L. Dräger" eingegebn wird
      tritt die Bedingung 'ELSE' auf, soll es aber nicht.. :/
      es erscheint:
      NOK

      Es soll aber ein OK geben. Aber es soll immernoch falsche einträge mit NOK beantworten!

      hier gibt es mehr informationen zu diesem problem..
      http://www.cs.tut.fi/~jkorpela/perl/regexp.html

      PHP-Code:
      <?php
      $name 
      'Dr. med. Dipl.-Ing. Jürgen L. Dräger';
      $result preg_match('/
                          ^[A-Z]
                          ([A-z]*)
                          ([-|(.)|(sb)][A-Z])     // << ich vermute den fehler hier
                          ?([A-z]+).?$
                          /'
      $name);

       echo (
      $result == FALSE)?'NOK':'O.K.';
      ?>
      Zuletzt geändert von Xsss4hell; 22.11.2005, 14:57.

      Kommentar

      Lädt...
      X