• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

js E-Mail Adresse überprüfen Funktion

Hornhauer

New member
Hallo :)

vor kurzem habe wir in der Vorlesung mit Javascript begonnen und ich bin jetzt dabei zu lernen und die Aufgaben alle zu machen. Bei einer Aufgabe komme ich aber überhaupt nicht weiter und weiß nicht genau, wo mein Fehler ist.

Aufgabe:
1 - Schreiben Sie eine Funktion, die true zurückgibt, falls die ihr übergebene Zeichenkette eine gültige E-Mail-Adresse sein kann.
Überprüfen Sie dazu folgende Dinge:
2 - Kommen in der Zeichenkette ein Punkt sowie das @-Zeichen vor? Verwenden Sie die in der Vorlesung vorgestellte Methode indexOf()
3 - Enthält die Zeichenkette kein Leerzeichen?
4 - Ist das drittletzte oder viertletzte oder fünftletzte Zeichen ein Punkt? Verwenden Sie die Methode lastIndexOf(). Überlegen Sie, wie groß die Differenz zwischen dem von lastIndexOf() geliefertem Wert und der gesamten Länge der Zeichenkette (bekommen Sie ja mithilfe des length-Attributs, gell) sein darf
5 - Kommt in der Zeichenkette genau ein @ vor? Dann müsste ja der Index des ersten Auftretens identisch sein mit dem des letzten Auftretens ...
6 - Liegen zwischen dem @-Zeichen und dem letzten vorkommenden Punkt mindestens zwei Zeichen - nur dann kann es sich um eine gültige Domain handeln, denn es gibt keine einbuchstabigen Domains.


Komme schon bei dem Teil nicht weiter, wo man die indexOf Methode anwenden soll (2)

So sieht mein momentaner Code dafür aus: (Habe nicht auf Schönheit geachtet)

HTML:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>5.2</title>

<script>

Str = prompt("Bitte Mail eingeben");

var bmi = function (Str) { 
    var Index = Str.indexOf(".");
    var Index = Str.indexOf("@");  
    document.write(Index);                                
};
  
		
</script>
<noscript>
JavaScript ist nicht aktiviert!
</noscript>
</head>

<body>

</body>
</html>

Wäre super nett, wenn mir jemand etwas weiterhelfen könnte :)
 
Deine Funktion, die du in der Variable bmi speicherst, wird ja auch nie aufgerufen:
Code:
function checkMailInput(str){
	var index1 = str.indexOf(".");
	console.log("index1", index1);
	var index2 = str.indexOf("@");
	console.log("index2", index2);
	return index1 !== -1 && index2 !== -1;
}
var str = window.prompt("Bitte Mail eingeben");
console.log("check mail input", checkMailInput(str));




Zu document.write:
http://www.w3.org/html/wg/drafts/html/CR/webappapis.html#dynamic-markup-insertion schrieb:
This method has very idiosyncratic behavior. In some cases, this method can affect the state of the HTML parser while the parser is running, resulting in a DOM that does not correspond to the source of the document (e.g. if the string written is the string "<plaintext>" or "<!--"). In other cases, the call can clear the current page first, as if document.open( ) had been called. In yet more cases, the method is simply ignored, or throws an exception. To make matters worse, the exact behavior of this method can in some cases be dependent on network latency, which can lead to failures that are very hard to debug. For all these reasons, use of this method is strongly discouraged.
 
nebenbei bemerkt ...

2 - Kommen in der Zeichenkette ein Punkt sowie das @-Zeichen vor?
es gibt formal gültige adressen auch ohne punkt:
- root@localhost
- root@::1

4 - Ist das drittletzte oder viertletzte oder fünftletzte Zeichen ein Punkt?
IP adressen sind ebenfalls gültige 'domains':
- root@127.0.0.1
- root@::1
es gibt TLDs (Top Level Domains) mit mehr als 4 zeichen:
- .museum
- .travel
 
Super, Dankeschön @kkapsner :)

Habe auch noch selber probiert und habe es fast identisch mit deinem Code, nur ich habe die letzten beiden Zeilen mit in die Funktion gepackt und nicht außerhalb. Und habe anstatt console.log, alert benutzt. Console.log kenne ich noch nicht :eek:

@Dormilich
Das mag sein, aber der Lehrer gibt die Aufgaben vor :D
 
Das sieht kompliziert aus :eek:

Ich glaube er wird das schon so auch kennen mit diesem regex, aber wir haben im ganzen Semester nur 5 Vorlesungen für Javascript, wo wir die ganzen Grundlagen, If Anweisungen, Schleifen, Funktionen, Objekte, Zugriff auf Objekte in html und Frameworks mit jQuery lernen müssen :D
 
ich finde es unmöglich, wenn lehrer sachen mit beispielen erklären wollen die vollkommen praxisfern sind!
warum nehmen die nicht beispiele die zum lernstoff passen?
 
Zurück
Oben