Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Email Prüf Regex funktioniert nicht korrekt

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
smilla
PostRank 5
PostRank 5
Beiträge: 268
Registriert: 28.07.2008, 19:14

Beitrag von smilla » 27.03.2010, 16:45

Hi,

beim testen habe ich herausgefunden, dass mein email prüf regex nicht funktioniert, wenn ich großbuchstaben verwende. so schaut es aus:

Code: Alles auswählen

function check_email($email)
{ 
   if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $email))
   { 
      return false;   
   } 
   else 
   { 
      return true;      
   } 
} 
was muss ich ändern, damit er das auch bei groß und kleinschreibung richtig prüft.

smilla

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 27.03.2010, 17:46

Der Modifikator i hinter dem abschließenden Delimiter wird helfen. Du solltest außerdem die Bindestriche escapen. Also:

/^[_a-z0-9\-]+(\.[_a-z0-9\-]+)*@[a-z0-9\-]+(\.[a-z0-9\-]+)*(\.[a-z]{2,4})$/i

Guckstu: https://php.net/manual/de/reference.pcr ... ifiers.php

Hasenhuf
PostRank 9
PostRank 9
Beiträge: 2840
Registriert: 26.12.2005, 22:22

Beitrag von Hasenhuf » 27.03.2010, 19:50

Darüber hinaus stuft deine Prüfung zulässige Emailadressen als falsch ein (nur ein Beispiel, es gibt tlds mit mehr als vier Buchstaben). Und darüber hinaus ist dein Vorhaben grundsätzlich überdenkenswert.

zum Lesen:
https://aktuell.de.selfhtml.org/weblog/ ... l-adressen
https://aktuell.de.selfhtml.org/artikel ... /index.htm

Bauchladen
PostRank 6
PostRank 6
Beiträge: 388
Registriert: 24.04.2005, 13:51
Wohnort: Hamburg

Beitrag von Bauchladen » 30.03.2010, 17:39

Wozu gab es FILTER_VALIDATE_EMAIL nochmal?

Code: Alles auswählen


      if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) {
        echo "Email (vllt.) schlecht";
      } else {
        echo "Email gut";
      }
    

Alternativ (<5.2) hätte ich auch noch einen extra langen Ausdruck (woher sag ich nicht)

Code: Alles auswählen

/^&#40;?&#58;&#91;\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\&#123;\|\&#125;\~&#93;+\.&#41;*&#91;\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\&#123;\|\&#125;\~&#93;+@&#40;?&#58;&#40;?&#58;&#40;?&#58;&#91;a-zA-Z0-9_&#93;&#40;?&#58;&#91;a-zA-Z0-9_\-&#93;&#40;?!\.&#41;&#41;&#123;0,61&#125;&#91;a-zA-Z0-9_-&#93;?\.&#41;+&#91;a-zA-Z0-9_&#93;&#40;?&#58;&#91;a-zA-Z0-9_\-&#93;&#40;?!$&#41;&#41;&#123;0,61&#125;&#91;a-zA-Z0-9_&#93;?&#41;|&#40;?&#58;\&#91;&#40;?&#58;&#40;?&#58;&#91;01&#93;?\d&#123;1,2&#125;|2&#91;0-4&#93;\d|25&#91;0-5&#93;&#41;\.&#41;&#123;3&#125;&#40;?&#58;&#91;01&#93;?\d&#123;1,2&#125;|2&#91;0-4&#93;\d|25&#91;0-5&#93;&#41;\&#93;&#41;&#41;$/
Bild

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag