Edgar Ehritt: Reguläre Ausdrücke

Beitrag lesen

Hallo Gabriel,

/([a-zA-Z0-9_-.]+@[a-zA-Z0-9_-.]+.[a-zA-Z]{2,6})/i

darf ich mal fragen, warum Du Klasse [a-zA-Z] nutzt, wenn Du eh den Modifikator i verwendest? Darüber hinaus ist unter sehr vielen anderen Möglichkeiten die mail-Adresse .e@_..de ungültig, wird aber von Deinem pattern erfasst. Dagegen ist die mail-Adresse eddi{privat}@example.com gültig, wird aber von Deinem pattern nicht erfasst.

Ein halbwegs gescheiter Ausdruck nur zum erfassen des lokalen Teils mit @-Zeichen einer mail-Adresse sähe etwa so aus:

'#("[a-z0-9!\#$%&\'*+\-\/:;<=>?@\[\]^_{|}~. ]{0,62}"|[a-z0-9!#$%&'+-/=?^_{|}~][a-z0-9!\#$%&\'*+\-\/=?^_{|}~.]{0,62}[a-z0-9!#$%&'+-/=?^_{|}~])@#i'

Eine Domain korrekt zu erkennen, soviel darf ich schon mal verraten, ist noch mal komplexer…

… Wenn das Formular nicht korrekt ausgefüllt wurde werden nach dem Prinzip der Sticky Forms alle korrekten Eingaben wieder in die entsprechenden Felder eingefügt - und in JS-Code bzw. Links auf Bilder ersetzt, was nicht sein soll.

Das lässt sich doch sinnvoll mit einer einfachen Kontrollstruktur eindämmen:

if(!pruefe_formulareingaben()){  
   sende_formular_zurueck();  
   exit;  
}  
konvertiere_mail_adressen();

Hier RegExp zu verwenden, bedeutet doch unnötig Arbeit.

Gruß aus Berlin!
eddi