[REGEX] Mehr als ein Zeichen in Zeichenklasse?

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

  • [REGEX] Mehr als ein Zeichen in Zeichenklasse?

    Hoi,

    ich möchte gerne die Anmeldenamen die über eine WebFormular kommen überprüfen.

    läuft auch schon mit folgender Regex:
    PHP-Code:
    $regex "^[\wäöüß. -]+$"
    Jetzt gibt es das Problem das manche Leute sich URLs als Namen geben - das soll nicht möglich sein. Mir würde es reichen wenn ich sagen könnte, der Punkt ist nur ein gültiges Zeichen wenn ihm ein Leerzeichen folgt.
    Leider kann ich ja in einer Zeichenklasse keine Zeichenketten definieren, oder doch?

    Wahrscheinlich hat einer nen Tip für mich...

    danke.

  • #2
    > Mir würde es reichen wenn ich sagen könnte, der Punkt ist nur ein gültiges
    > Zeichen wenn ihm ein Leerzeichen folgt.

    Öhm, "\. "?

    Kommentar


    • #3
      Naja, das hab ich ja schon.

      Da der Punkt in der Zeichenklassendefintion ist ([]) brauch ich ihn nicht escapen. Und Leerzeichen ist auch schon drin, d.h. aber das in der gesuchten Zeichenkette "." oder " " drin sein können...

      Ist also leider nicht die Lösung...

      Trotzdem danke.

      Kommentar


      • #4
        Achso, jetzt versteh ich dich erst.. wie wär's mit [..]

        edit: doch jetzt erst verstanden, dasnn passt das regex was hier war auch nicht

        Aber wenn du verhindern willst dass jemand ne URL in den Namen kloppt versteh ich nicht was du mit dem .[leerzeichen] willst (oder wenn ich's verstehe halt ich's für quatsch)
        Zuletzt geändert von Luke; 26.05.2006, 13:28.

        Kommentar


        • #5
          Nicht ganz, aber du hast mich auf eine gute Idee gebracht

          Thnx!

          Code:
          $regex = '^(([\wäöüß -])|(\. ))+$';

          EDIT:
          Zur Erklärung, es sollen nur namen möglich sein. Und wenn ein Punkt in einem Namen vorkommt dann hat er immer ein Leerzeichen dahinter. "Peter K. Müller" - ansonsten ist es ein Schreibfehler. Eine URL hingegen hat hinter dem Punkt immer einen Buchstaben und keine Leerzeichen. Jetzt verstanden?

          Kommentar

          Lädt...
          X