LastIndexOf is not a function
Ich bin dabei mit javascript den Dateinamen zu filtern vom rest einer URL. Der Code sieht bis jetzt wie folgt aus:
"page" ist mit der URL definiert. Wenn die URL z.B. "http://localhost/test/datei.html" ist will ich daraus nur "datei.html" haben. Wenn ich das Script so ausführe zeigt mir FireFox. "LastIndexOf is not a function". Was mache ich falsch?
var firstpos = page.lastindexof('/');
var lastpos = page.length();
var page = page.split(firstpos + 1, lastpos);
"page" ist mit der URL definiert. Wenn die URL z.B. "http://localhost/test/datei.html" ist will ich daraus nur "datei.html" haben. Wenn ich das Script so ausführe zeigt mir FireFox. "LastIndexOf is not a function". Was mache ich falsch?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 59487
Url: https://administrator.de/forum/lastindexof-is-not-a-function-59487.html
Ausgedruckt am: 05.04.2025 um 16:04 Uhr
10 Kommentare
Neuester Kommentar
@EvilMoe
Hi,
lastindexof wird lastIndexOf geschrieben. Bei Java-Script
ist Groß-Kleinschreibung zu beachten!!
In der Funktion split(var string) wird ein Trennzeichen angegeben.
Die Funktion zerlegt einen übergebenen String dann anhand dieses
Trennzeichens in einzelne Teile und gibt ein Array zurück.
Du aber hast Zahlen übergeben.
Um einen Teilstring zu extrahieren gibt es die Funktion substr(pos_ab_wo).
Möglich sind aber beide, eine Version mit substr(), eine mit split():
Grüße
Günni
Hi,
lastindexof wird lastIndexOf geschrieben. Bei Java-Script
ist Groß-Kleinschreibung zu beachten!!
In der Funktion split(var string) wird ein Trennzeichen angegeben.
Die Funktion zerlegt einen übergebenen String dann anhand dieses
Trennzeichens in einzelne Teile und gibt ein Array zurück.
Du aber hast Zahlen übergeben.
Um einen Teilstring zu extrahieren gibt es die Funktion substr(pos_ab_wo).
Möglich sind aber beide, eine Version mit substr(), eine mit split():
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
<!--
function extract_datei1(){
var url="http://localhost/ordner/ordner/datei1.html";
var pos=url.lastIndexOf("/")+1;
var dateiname1=url.substr(pos);
alert("Version 1 mit substr: " + dateiname1);
}
function extract_datei2(){
var url="http://localhost/ordner/ordner/datei2.html";
var elemente=url.split("/");
var dateiname2=elemente[elemente.length-1];
alert("Version 2 mit split: " + dateiname2);
}
extract_datei1();
extract_datei2();
// -->
</script>
</head>
<body>
</script>
</body>
</html>
Grüße
Günni
Also da würde ich schätzen, dass durch die Zuweisung
var page = extract_datei(url);
erwartet wird, dass die Funktion extract_datei(...) ein Wert zurückgeliefert wird. Allerdings sehe ich in dem Funktionsrumpf nirgends eine return-Anweisung. Was das nun mit lastIndexOf zu tun haben soll ist mir auch unklar.
Filipp
btw: lastIndexOf ist nur für Strings definiert. Kann es sein, dass du "url" eine Zahl zugewiesen hast?
var page = extract_datei(url);
erwartet wird, dass die Funktion extract_datei(...) ein Wert zurückgeliefert wird. Allerdings sehe ich in dem Funktionsrumpf nirgends eine return-Anweisung. Was das nun mit lastIndexOf zu tun haben soll ist mir auch unklar.
Filipp
btw: lastIndexOf ist nur für Strings definiert. Kann es sein, dass du "url" eine Zahl zugewiesen hast?
@EvilMoe
Hi,
wenn du Funktionen verschachtelst, heißt, eine Funktion verarbeitet das
Ergebnis einer anderen Funktion, so muß diese andere Funktion auch einen
Wert zurückgeben. Das wird mit dem Schlüsselwort return gemacht.
Heißt z.B.:
Heißt, auf dein Beispiel übertragen:
Grüße
Günni
Hi,
wenn du Funktionen verschachtelst, heißt, eine Funktion verarbeitet das
Ergebnis einer anderen Funktion, so muß diese andere Funktion auch einen
Wert zurückgeben. Das wird mit dem Schlüsselwort return gemacht.
Heißt z.B.:
funktion quadrat(parameter){
return parameter*parameter;
}
var d=quadrat(4);
Heißt, auf dein Beispiel übertragen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
<!--
function extract_datei1(url){
var pos=url.lastIndexOf("/")+1;
var dateiname1=url.substr(pos);
return dateiname1;
}
function zeige_dateiname_der_url(url){
alert(extract_datei1(url));
}
zeige_dateiname_der_url("http://localhost/ordner/ordner/ordner/datei.html");
// -->
</script>
</head>
<body>
</script>
</body>
</html>
Grüße
Günni