Gabi: Funktion istEmail

Hallo
auf  http://webmatze.de/webdesign/javascript/formularcheck.htm habe ich eine gewaltige Funktion gefunden die email adressen mittels Regular Expression  überprüfen soll.

function istEmail(feld) {
        // werden regular expressions unterstuetzt?
 var supported = 0;
 if (window.RegExp)
 {
  var tempStr = "a";
  var tempReg = new RegExp(tempStr);
  if (tempReg.test(tempStr)) supported = 1;
 }
 if (!supported) return (feld.indexOf(".") > 2) && (feld.indexOf("@") > 0);

var r1 = new RegExp("(@.*@)|(\.\.)|(@\.)|(^\.)");
 var r2 = new RegExp("^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
 var r3 = new RegExp("[1]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+[a-zA-Z]{2,}$");
 return (!r1.test(feld) && r3.test(feld));
}

function testEmail(str) {
 if (!isEmail(str)) {
  alert("Sie haben eine falsche eMail-Adresse eingegeben!\n Bitte korrigieren Sie Ihre Eingabe.");
  return false;
 }
 else {
  return true;
 }
}

Ist hier jemand anwesend der mir das mal genau erklären kann was da geprüft wird ??
Kann es sein das es nicht geprüft wird, ob innerhalb der Mailadresse ein Leerzeichen steht ??

Vielen Dank
Gabi


  1. _a-zA-Z0-9- ↩︎

  1. Hi,

    Ist hier jemand anwesend der mir das mal genau erklären kann was da geprüft wird ??

    das Falsche, wie so oft. Eine RFC-kompatible Prüfung erfordert sehr viel mehr Code.

    Kann es sein das es nicht geprüft wird, ob innerhalb der Mailadresse ein Leerzeichen steht ??

    Richtig; allerdings wird überprüft, ob die Adresse aus bestimmten Zeichen besteht, von denen keines ein Leerzeichen ist. Dummerweise sind Leerzeichen in Mailadressen durchaus erlaubt.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    Ist hier jemand anwesend der mir das mal genau erklären kann was da geprüft wird ??

    Mit r1 wird geprüft, ob mehrere "@" vorkommen, oder mehrere"" oder ein "@" oder am Anfang ein "", was alles nicht erlaubt ist.

    r2 wird nicht benutzt, war vielleicht ein früherer Versuch.

    r3 prüft, ob die Adresse mit einer Folge der Zeichen
    "_", Kleinbuchstabe, Großbuchstabe, Ziffer oder "-"
    beginnt, evtl. gefolgt von mehrfach
    einem Punkt plus einer Folge der Zeichen
    "_", Kleinbuchstabe, Großbuchstabe, Ziffer oder "-",
    worauf dann ein "@" folgt, und mindestens einmal eine Folge der Zeichen
    Kleinbuchstabe, Großbuchstabe, Ziffer oder "-" mit Punkt am Ende,
    gefolgt von mindestens 2 der Zeichen
    Kleinbuchstabe, Großbuchstabe
    ganz am Ende.

    Kann es sein das es nicht geprüft wird, ob innerhalb der Mailadresse ein Leerzeichen steht ??

    Doch. In r3 werden keine Leerzeichen erwähnt, also sind sie nicht erlaubt.

    Irgendwo habe ich einmal gelesen, dass es seeehr schwer bis unmöglich ist, mit letzter Sicherheit eine gültige von einer ungültigen Mailadresse zu unterscheiden.

    Gruß, Don P

  3. Hallo,

    Allgemein zum Thema würde ich allerdings folgenden Artikel empfehlen:

    http://aktuell.de.selfhtml.org/weblog/validierung-von-email-adressen

    Viele Grüße,
    Christian