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?