Funktion istEmail
Gabi
- javascript
0 Cheatah0 Don P0 Christian Seiler
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
_a-zA-Z0-9- ↩︎
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
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
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