hilfdirselbst.ch
Facebook Twitter gamper-media
"Funktioniert nicht" ist keine hinreichende Fehlerbeschreibung.
Anonym
Beiträge: 22827
24. Jun 2004, 09:54
Beitrag #1 von 4
Bewertung:
(1085 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Plausibilitätsabfrage - @-Zeichen


Hallo!

Ich habe ein Java Script, dass ich zur Plausibilitätsabfrage bei meinem Antwortformular nutzen möchte, allerdings soll es um einige Punkte erweitert werden. Ich weiß nur nicht , welche Einträge ich setzen muss, damit es funktioniert.
Ich möchte, dass eine Fehlermeldung erscheint, wenn
- nicht mindestens zwei Zeichen vor dem @-Zeichen stehen.
- nach dem @-Zeichen nur ein Zeichen eingetragen wurde.
- die Domainendung mehr als 3 Zeichen hat (Ausnahmen sollen sein: .info und .name).

Ich würde mich freuen, wenn mir jemand weiterhelfen könnte.


Hier noch der Script Bereich, den ich für das @-Zeichen nutze:

if(document.mailer.d_mail.value.indexOf('@')==-1 ||document.mailer.d_mail.value.indexOf('.')==-1)
{
alert ("Eine gültige E-Mailadresse muss das \n '@' (At-Zeichen) und einen '.' (Punkt)\n enthalten.");
document.mailer.d_mail.focus();
return false
}


var zeichen="/ ;:,äüö";
eingabe=document.mailer.d_mail.value;
laenge=eingabe.length;

for( i=0;i<laenge;i++ )
{
badchar=eingabe.charAt(i);
if (zeichen.indexOf(badchar)>-1)
{
alert("Die Zeichen \n Slash(/),\n Doppelpunkt (:),\n Semikolon (;),\n Komma (,)\n und Leerzeichen ( )\n sowie deutsche Umlaute (ä,ü,ö) \n sind in einer Email nicht erlaubt." );
document.mailer.d_mail.focus();
return false;

}

}

atPosition=document.mailer.d_mail.value.indexOf('@');

if(document.mailer.d_mail.value.indexOf('@', atPosition+1)>-1)
{alert ("Sie haben versehentlich mehr als ein '@-Zeichen' eingegeben.");
document.mailer.d_mail.focus();
return false
}


if(document.mailer.d_mail.value.indexOf('.', atPosition)==-1)
{alert ("An irgendeiner Stelle NACH dem '@-Zeichen' sollte ein Punkt folgen.");
document.mailer.d_mail.focus();
return false
}


punktPosition=document.mailer.d_mail.value.lastIndexOf('.');

if(punktPosition+3>document.mailer.d_mail.value.length){alert("Nach dem Punkt müssen noch mindestens 2 Zeichen folgen. ")
return false};

if(punktPosition+5<document.mailer.d_mail.value.length){alert("Bitte mindestens 2, aber NICHT mehr als 4 Zeichen nach dem Punkt.")
return false}; Top
 
X
oesi50  A  S
Beiträge: 2315
24. Jun 2004, 10:59
Beitrag #2 von 4
Beitrag ID: #92995
Bewertung:
(1085 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Plausibilitätsabfrage - @-Zeichen


hallo anonym,

Das geht wesentlich besser mit regulären Ausdrücken.

re = /^([a-zA-Z0-9\-\.\_]+)@([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2, 4})$/;

if(!re.test(document.mailer.d_mail.value)){
alert("Fehler");
return false;
}

Beispiel:

http://vsrv.de/...xt/regextester.shtml

Kopiere das in die Zeile 'Regexp':
^([a-zA-Z0-9\-\.\_]+)@([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2, 4})$

Kopiere das in die Zeile 'String':
abc@example.com

Erklärung
^ Beginn der Zeichenkette (Anker)
( erster Teilstring Anfang
[a-zA-Z0-9\-\.\_] Zeichenklasse: a bis z A bis Z 0 bis 9 - . _
+ mindestens 1 mal aber beliebig viele
) erster Teilstring Ende
@ das @ Zeichen
( zweiter Teilstring Anfang
[a-zA-Z0-9\-\.] Zeichenklasse
+ s.o.
\. der Punkt
[a-zA-Z] Zeichenklasse
{2,4} mindestens 2 mal, maximal 4 mal
) zweiter Teilstring Ende
$ Ende der Zeichenkette (Anker)

Zusätzlich sind auch noch E-mails der Form abcd@[nnn.nnn.nnn.nnn] zulässig, wobei nnn eine Zahl von 0 bis 255 sein kann.
Diese müssten auch noch als gültig erkannt werden.

/^([a-zA-Z0-9\-\.\_]+)@(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1, 3}\])$/


Wenn Du wieder einmal ein ähnliches Problem hast, ist es besser, die Gültigkeit zu definieren als die Ungültigkeit.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#92980]
(Dieser Beitrag wurde von oesi50 am 24. Jun 2004, 12:58 geändert)
Top
 
Anonym
Beiträge: 22827
24. Jun 2004, 16:34
Beitrag #3 von 4
Beitrag ID: #93139
Bewertung:
(1085 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Plausibilitätsabfrage - @-Zeichen


Vielen dank für den Tip. So sieht das Ganze natürlich übersichtlicher aus. Ich blick´s aber grad überhaupt nicht!
ich habe keine Ahnung, was ich jetzt wie und wo eintragen muss, damit alles so funkt, wie es sein soll.
Das mit den Domainnamen ist übrigens vom Kunden so gewünscht, der will noch einige mehr, die als "ok" erkannt werden.
Vielleicht kannst Du mir ja helfen?
als Antwort auf: [#92980] Top
 
oesi50  A  S
Beiträge: 2315
24. Jun 2004, 16:51
Beitrag #4 von 4
Beitrag ID: #93149
Bewertung:
(1085 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Plausibilitätsabfrage - @-Zeichen


schick mir doch mal ne Mail wie es aussehen soll.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#92980] Top
 
X