Gabriel: Reguläre Ausdrücke

Beitrag lesen

Hallo eddi

/([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?

Das ist eine gute Frage - das i(nsensitive) fehl am Platze, da hast du vollkommen recht.

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.
[...]
Eine Domain korrekt zu erkennen, soviel darf ich schon mal verraten, ist noch mal komplexer…

Das ist mir klar und ich habe auch nicht die Absicht Adressen zu 100% zu validieren. Ich will mit dem RegEx nur Adressen, die im Backend eingegeben werden durch etwas "Bot-sicherere" Varianten ersetzen. Hier macht es nichts, wenn eine ungültige Adresse als gültige erkannt wurde, wenn mit dem "Text" eine E-Mail-Adresse gemeint war.

… 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.  
  
Ja und nein. In dem System besteht jede Seite aus mehreren Bereichen / Records. Dieser RegEx läuft über die Seite kurz vor deren Auslieferung und weiß nicht, ob das, was das untersucht werden soll ein (statischer) Record mit einer zu ersetzenden E-Mail-Adresse ist oder einer, der ein Formular enthält.  
Die "unnötige Arbeit", die ich mir und der Performance des Systems sparen will, ist die Prüfung über alle einzelnen Bestandteile laufen zu lassen und dann für jeden Bestandteil der Seite extra zu prüfen, ob dieser Bestandteil überprüft werden soll oder nicht.  
  
Gruß  
Gabriel