Reguläre Ausdrücke mit Umlauten.

aleks

Mitglied
Hallo Zusammen,
ich hab ein paar Jahre hier nur einfach mitgelesen. Jetzt habe ich ein Problem wo ich nicht weis wie es lösen kann vielleicht hab Ihr ja eine Idee.

Also ich für die Überprüfung eines Formularfeldes folgenden regulären Ausdruck: ([A-Z])([a-z+\-]+)$. Jetzt ist mein Problem, wenn ich in das Feld z.B. den Namen Krüger schreibe und dann das Script ausführe behauptet es das es mit der Vorgabe nicht überein stimmt. Also wie mache ich das, daß es die Umlaute wie normale Buchstaben behandelt? Wer kann mir helfen?
 
Du musst die Umlaute in der Zeichenklasse gesondert angeben...da sie nicht innerhalb des Bereiches a-z enthalten sind, sondern danach folgen:
[a-zäöü]
Selbiges gilt für ß

Je nach System kann auch [^\W_] ausreichen.
 
Cool das ging schnell! Besten Dank Sven Mintel, es funktioniert :-) .Mein Code sieht jetzt so aus:
PHP:
$Plotter = "([A-ZÄÖÜ])([a-zäöüß+\-]+)-([A-ZÄÖÜ])([a-zäöüß\-]+)$";
	if(!ereg($Plotter,$_POST['vorname']))
	{
	  $allesok = 0;
	  $error[vorname]="<b><span style=\"color:red;\">*</span></b>";
	}
. Jetzt muß der User am Anfang groß Schreiben und auch nach dem Bindestrich (-).
 
Kleiner Tipp:
Ich weiss nicht, wofür genau du diese Prüfung brauchst, aber wenn nicht die Welt untergeht, dass ein Name nicht deinen Regeln entspricht, dann würde ich mich darauf beschränken, welche Zeichen garantiert nicht vorkommen dürfen.

Grund: die Welt ist gross, es gibt viele Buchstaben... nicht nur die auf einer deutschen Tastatur.
Soetwas wie die deutschen Umlaute gibt es in vielen Sprachen, dazu kommen Interpunktionszeichen.

Der Schaden ist vergleichsweise tragischer, wenn jemand nicht durch deine Prüfung kommt, weil sein Name nicht deinem Muster entspricht.
 
Also ich bin grad am basteln eines Formulars für eine Registrierung.
Und da ich der Meinung bin das Namen groß geschrieben(oder etwa nicht), werden hab ich mir eben diese Regel ausgedacht. Sicher man hätte drauf verzichten können, bloß dann hätte ich später Namen groß und- klein geschriebene Namen in meiner Datenbank stehen.
Ich hoffe es ist jetzt verständlich geworden.
 
Gut....die Grossschreibung am Anfang kannst du perSkript erledigen([phpf]ucfirst[/phpf])


Worauf ich hinauswollte....André oder bspw. ein Herr Hoëcker ....nach meiner Erfahrung bestehen solche Leute auf ihre Namenszutaten: bei dir ginge dies nicht.
 
Stimmt Gumbo. Und wie muß ich das Formulieren wenn es ein Bindestrich gibt, dann muß der nächste Buchstabe groß geschrieben werden.
 
Ebenso wie Sven halte ich diese Prüfung der korrekten Groß- und Kleinschreibung eines Vornamens für überflüssig oder unnötig kompliziert. Wie Sven es schon erwähnte, würde auch ich nur nichterlaubte Zeichen ausschließen anstatt irgendwelche komplizierte Ausdrücke zu entwickeln, die am Ende doch nichts nutzen.
 
Worauf ich hinauswollte....André oder bspw. ein Herr Hoëcker ....nach meiner Erfahrung bestehen solche Leute auf ihre Namenszutaten: bei dir ginge dies nicht.
Interessant also é gibt es glaube ich im französischen aber ë kenne ich keine Sprache die diesen Buchstabe verwendet. Bestimmt gibt noch mindestens ein duzten solcher Sonderbuchstabe. Aber woher weis ich denn welcher Buchstaben ich noch berücksichtigen muß?
 
Zurück