Enrico: Regulärer Ausdruck für Prüfung von Namen

Beitrag lesen

Guten Abend,

bei der Programmierung unserer Vereinshomepage bin ich nun bei der Validierung der Eingaben angelangt.

Bei der Eingabe des Namens möchte ich beispielsweise folgende Varianten als zulässige Eingaben akzeptieren:

Beispiel 1: Tom
Beispiel 2: Hans Meier
Beispiel 3: Hans-Jürgen
Beispiel 4: Hans-Peter Müller
Beispiel 5: Hans Meier-Müller
Beispiel 6: Hans-Peter Meier-Müller

In einzelne Bestandteile runtergebrochen sollen folgende Regeln geprüft werden:

-Mindestens drei Buchstaben (Beispiel 1) als Pflichteingabe
-Optional ein Leerzeichen oder Bindestrich, gefolgt von mindestens drei weiteren Buchstaben (Beispiele 2 und 3)
-Optional ein Leerzeichen, gefolgt von mindestens drei weiteren Buchstaben (Beispiel 4)
-Optional ein Leerzeichen oder Bindestrich, gefolgt von mindestens drei weiteren Buchstaben (Beispiel 5)

Mein aktueller Ausdruck sieht folgendermassen aus:

/[1]{3,}(([ |-][a-züöä]{3,}){0,}([a-züöä]{3,}){0,}([a-züöä]{3,}){0,})$/i

Über einen Online-Tester bekomme ich bei der Eingabe von "tom-tom meier-müller" folgendes Ergebnis:

Array
(
   [0] => tom-tom meier-müller
   [1] => -tom meier-müller
   [2] => -müller
)

Ist mein Ausdruck damit richtig?
Wenn nein, wie muss ich ihn aufbauen?
Wenn ja, Wie kann ich meinen Ausdruck verbessern?
Warum wird beim Bindestrich ein neuer Treffer abgegrenzt?

Danke schon mal für eure Mithilfe.

Gruß
Enrico


  1. a-züöä ↩︎