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