Einzelnen Beitrag anzeigen
  #1  
Alt 05.07.2012, 02:15:44
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
Regex für ein Namensfeld

Grundlage: Es handelt sich um ein lokales Projekt. Somit würde eigentlich eine Prüfung auf ein leeres Feld reichen. Allerdings kenne ich meine Pappenheimer und möchte in einer Formularauswertung zumindest verhindern, dass absoluter Müll erfasst wird.
Asiatische oder kyrillische Sonderzeichen kann und will ich ausschliessen.

Mein Code
PHP-Code:
//$ansprechpartner ist das entsprechende Formularfeld, welches einen Namen beinhaltet
if(!preg_match('/[^a-z üÜäAöÖß-]/i'$ansprechpartner)){
    
$this->setAnsprechpartner($ansprechpartner);
} else {
    
$this->setErrorMsg('Es wurden ungültige Zeichen im Namen verwendet.');

Soweit funktioniert alles auch wie gewüscht.

Einziges Problem: Dr. oder Hr. bzw. Fr. ruft setErrorMsg auf, da der Punkt nicht im preg_match vorkommen darf.

Erweitere ich das Pattern um den Punkt(einfach einen . hinter - gesetzt), bekomme ich eine Fehlermeldung
Zitat:
Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 20 in C:\xampp\htdocs\echtbetrieb\application\model\wartung\validform.php on line 51
Ich gebe zu. Regexp sind für mich bömische Dörfer.
Kann mir jemand helfen den Punkt im String doch noch zu erlauben?
Mit Zitat antworten