Einzelnen Beitrag anzeigen
  #3  
Alt 05.07.2012, 19:23:08
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Regex für ein Namensfeld

Zitat:
Zitat von vt1816 Beitrag anzeigen
Hast Du es mal mit escapen (\.) versucht!?
Nein. Hab es aber gleich mal getestet. Klang auch logisch.

Pattern: '/[^a-z üÜäAöÖß-/.]/i' bringt
Zitat:
Warning: preg_match() [function.preg-match]: Unknown modifier '.' in C:\xampp\htdocs\echtbetrieb\application\model\wartung\validform.php on line 95
Pattern: '/[^a-z üÜäAöÖß-\.]/i' bringt die ursprüngliche Fehlermeldung.

ABER: '/[^a-z \.üÜäAöÖß-]/i' führt zum gewollten Ergebnis.

Offenbar mag es preg_match nicht, wenn ein Punkt am Ende steht. Wird am Ende vermutlich nicht als Suchzeichen sondern anderweitig interpretiert.
Wäre somit nur noch interessant, wieso es nicht am Ende stehen darf.

Der Vollständigkeitshalber:
PHP-Code:
if(!preg_match('/[^a-z \.üÜäAöÖß-]/i'$ansprechpartner)){
                
$this->setAnsprechPartner($ansprechpartner);
            } else {
                
$this->setErrorMsg('Ungültige Zeichen im Namen<br />');
            } 
Führt die Methode setAnsprechPartner() aus, wenn nur die im Suchmuster verwendeten Zeichen im String enthalten sind. Das Suchmuster sollte auf KEINEN Fall verwendet werden, wenn man andere Namen erwarten muss als sie in Deutschland üblich sind.
Grieschische, französische und andere Sprachen mit Sonderzeichen im Namen würden einen Fehler werfen.
Der Bindestrich dient der Behandlung von Doppelnamen und der Punkt lediglich um Titel bzw. das Geschlecht mit reinschreiben zu können.
Letzteres würde ich bei einem wichtigeren Formular eher mit einem extra Formularfeld umsetzen.
Mit Zitat antworten