RegExp bleibt eine Welt für sich?!

"´" und "`" sind aber nicht gleich "é". Das sind im Code verschiedene Zeichen...
Da müsstest du jede Menge von Zeichen überprüfen, alleine die Akzente im Französischen: é, è, ê, á, à, â, ó, ò, ô, usw.
Dann noch im Türkischen und Spanischen die Zeichen... Da wirste nicht glücklich werden.
 
Naja, gegen die Akzente hab ich ja nichts. Wenn jemand so heißt, dann ist das eben so und dann soll er auch das "Recht" drauf haben seinen Namen schreiben zu können. Von dem her würde ich wirklich nur die Zeichen unterbinden wollen, welche gar nicht im Namen vorkommen. Also nur die hier: °^!"§$%&/\@€()=?*~'#|><²³[]{}

Dann steht den Nutzern der Rest zu Verfügung. Die Strings werden ja dann eh nochmals mittels mysql_real_escape_string() gecheckt.

Das wäre doch eine Möglichkeit?

Anrede: "/^[a-zA-Z]$/s"
Vorname: "/^[^\°\^\!\"\§\$\%\&\/\\\@\€\(\)\=\?\*\~\'\#\|\>\<\²\³\[\]\{\}]+$/s"
Nachname: "/^[^\°\^\!\"\§\$\%\&\/\\\@\€\(\)\=\?\*\~\'\#\|\>\<\²\³\[\]\{\}]+$/s"
PLZ: "/^[0-9]$/s"
Telefon: "/^([0-9]){3,}([\-\/]){0,1}([0-9]){4,}+$/s"
E-Mail: "/^[A-z0-9ÄÜÖäüöß\-\_\.]*[@][A-z0-9ÄÜÖäüöß\-\_\.]*[.][A-Za-z0-9]{2,4}$/s"
Nachricht: "/^[^\°\^\$\/\~\#\|\>\<\²\³\[\]\{\}]+$/s"

Ich denke dadruch gebe ich dem Nutzer größtmögliche Freiheiten. Stimmen diese RegExp tatsächlich so oder hab ich was vergessen? Wenn ich es richtig verstanden habe sorgt \s das der übergebene String als eine Zeile betrachtet werden soll. Dass soll es ja im Prinzip immer, da ich keine String-Trennung benötige. Jedoch habe ich das Problem, dass Anführungszeichen (doppelte und einfache) escaped werden. Wie kann ich das verhindern? Das soll ja erst später geschehen.
 
Zuletzt bearbeitet:
Zurück