Kluge E-Mail Adressen Validation
Beim Ausfüllen eines Formulars wird oftmals - absichtlich oder unabsichtlich - eine Falsche E-Mail Adresse angegeben. Ein kleines Script kann Ihnen helfen zu prüfen, ob es sich wirklich um eine E-Mail Adresse handelt oder nicht. Wie das geht erfahren Sie hier.Voraussetzungen
Zuerst sollten wir einmal nachdenken, wie eine E-Mail Adresse denn überhaupt aussieht. Allgemein gesehen besteht sie aus 4 Teilen, die wir überprüfen müssen: dem Benutzernamen, einem @, der Domain sowie der TLD (de, com, net ...). Zum testen werden wir Reguläre Ausdrücke verwenden - sollten also vorher prüfen, ob diese überhaupt unterstützt werden. Als Schwierigkeit kommt außerdem hinzu, dass Name, Domain und TLD nur aus bestimmten Zeichen bestehen dürfen und eine gewisse mindestlänge erfüllen sollten - auch das müssen wir prüfen.Aufbau
Der Aufbau wird wie folgt realisiert: Als erstes ein Test, ob Reguläre Ausdrücke unterstützt werden. Dann eine Unterteilung in zwei Varianten: mit und ohne Regulären ausdrücken. Mit ihnen brauchen wir nur einen einfachen Test durchführen um zu wissen ob es sich um eine E-Mail-Adresse handelt. Bei der Variante ohne Reguläre Ausdrücke werden wir die prüfen, ob ein@
-Zeichen vorhanden ist, wo es steht und ob danach ein Punkt (Domain.TLD) folgt. Ist alles O.K. soll die Funktion true
ausgeben, ansonsten false
. Der Aufbau wird erstmal so umgesetzt:
function EMail(s)
{
var a = false;
var res = false;
if(typeof(RegExp) == 'function')
{
var b = new RegExp('abc');
if(b.test('abc') == true){a = true;}
}
if(a == true)
{
/* ... Prüfen mit RegExp ... */
}
else
{
/* ... Prüfen ohne RegExp ... */
}
return(res);
}
Prüfen
Für das Prüfen mit Regulären Ausdrücken werden wir den folgenden Ausdrück verwenden:^([a-zA-Z0-9-._]+)(@)([a-zA-Z0-9-.]+)(.)([a-zA-Z]{2,4})$
.Im Einzelnen beschreibt dieser den Benutzernamen, ein @, die Domain, einen Punkt und 2 (z.B. de) bis 4 (z.B. info) Zeichen für die TLD. Bei der zweiten Variante werden wir die zerteilten Stücke der Adresse auf ihre Länge prüfen:
...
if(a == true)
{
reg = new RegExp('^([a-zA-Z0-9-._]+)'+
'(@)([a-zA-Z0-9-.]+)'+
'(.)([a-zA-Z]{2,4})$');
res = (reg.test(s));
}
else
{
res = (s.search('@') >= 1 &&
s.lastIndexOf('.') > s.search('@') &&
s.lastIndexOf('.') >= s.length-5)
}
...
Das Resultat
Das Resultat ist die untenstehende Funktion, Ihr wird der zu prüfende String übergeben und man erhält - je nach Richtigkeit der Adresse -true
bzw. false
.
function EMail(s)
{
var a = false;
var res = false;
if(typeof(RegExp) == 'function')
{
var b = new RegExp('abc');
if(b.test('abc') == true){a = true;}
}
if(a == true)
{
reg = new RegExp('^([a-zA-Z0-9-._]+)'+
'(@)([a-zA-Z0-9-.]+)'+
'(.)([a-zA-Z]{2,4})$');
res = (reg.test(s));
}
else
{
res = (s.search('@') >= 1 &&
s.lastIndexOf('.') > s.search('@') &&
s.lastIndexOf('.') >= s.length-5)
}
return(res);
}
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project