Reguläre Ausdrücke (RegEx)

  • Themenstarter Themenstarter ByeBye 242513
  • Beginndatum Beginndatum
Als Charset wird ausschließlich UTF-8 verwendet.

Auch diese Methode führt nicht zum Erfolg:
Code:
setlocale (LC_ALL, 'de_DE');
$string = "Herbert Äppel"
preg_match("#^[A-Z]+[A-Za-zöäüÖÄÜß. ]+$#", $string)
 
Also:
  1. deine Zeilen sind nicht mit Semikolon abgeschlossen
  2. die Funktion gibt etwas zurück was Du nicht abfängst oder abfragst
Was also funktioniert denn nicht?
 
Semikolon ist schon enthalten, nur beim kopieren ins Forum übersehen.

Es soll möglich sein einen Namen A-Z, Leerzeichen, Punkt und Umlaute einzugeben. Leider meldet das RegEx bei "Äppel" eine ungültige Struktur. Sprich: Ä ist nicht erlaubt, obwohl Ä in der RegEx definiertist.
 
Das liegt daran, dass du im RegEx verlangst, das erst mindestens ein Großbuchstabe von A-Z vorkommt.
Dieser RegEx trifft auf "Äppel"
Code:
^[A-Za-zöäüÖÄÜß. ]+$
 
Dann waren deine Varianten im Startpost leider etwas schlecht beschrieben. :)
Variante B:
Erlaubt: Buchstaben + Umlaute, Zahlen, Leerzeichen, Bindestrich, Unterstrich, Punkt (max. 1 Punkt).
Wobei zuerst ein Buchstabe geschrieben werden muss.
Für diese Variante könntest Du dieses Pattern nutzen:
PHP:
preg_match(
    '#^[a-zöäüß]+[a-zöäüß0-9 _\-]*\.?[a-zöäüß0-9 _\-]*$#i',
    $string
);
Der Modifikator i (case insensitive) am Ende des Pattern bedeutet, dass Klein- wie auch Großbuchstaben erkannt werden.

Gruß
 
Zurück