Wie kann ich den URL-Pfad der aktuellen Seite, aber ohne das letzte Segment:Get URL-Pfad ohne letztes Segment
http://www.domain.com/first/second/last
Ich brauche nur http://www.domain.com/first/second
... mit jQuery (oder nur JavaScript)
Wie kann ich den URL-Pfad der aktuellen Seite, aber ohne das letzte Segment:Get URL-Pfad ohne letztes Segment
http://www.domain.com/first/second/last
Ich brauche nur http://www.domain.com/first/second
... mit jQuery (oder nur JavaScript)
Wie OP beantragt - mit Änderungen von Kommentar
var url = document.URL,
shortUrl=url.substring(0,url.lastIndexOf("/"));
dies die URL geht davon ist wahrscheinlich nicht ändern
ich document.URL da diese verwenden wird, was empfohlen wird
die folgenden für alle Browser Versuchen:
var url = "http://www.domain.com/first/second/last"; // or var url = document.URL;
var subUrl = url.substring(0,url.lastIndexOf("/"))
alert(subUrl);
Die Methode lastIndexOf()
gibt die Position des letzten Vorkommens eines angegebenen Werts in einer Zeichenfolge zurück.
Hinweis: Die Zeichenfolge vom Ende zum Anfang gesucht wird, aber gibt den Index am Anfang beginnen, an Postion 0.
Diese Methode liefert -1, wenn der Wert für die Suche nie auftritt .
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/lastIndexOf
Sie verwenden lastIndexOf für eine Zeichenfolge, nicht für ein Array, also gibt es keine müssen den Array-Prototyp modifizieren. – nxt
Entschuldigung! Ich löschte, um weitere Verwirrung zu vermeiden, ich war selbst verwirrt. –
Ich bin mir nicht sicher, dass dies die eleganteste von Lösungen ist, aber Sie wollen nur die bis zum letzten Slash String, oder zweiter ein Schrägstrich, wenn das letzte Zeichen dauern. Hier nehme ich zuerst den Teil der URL, der nach dem Protokoll (http: // oder https: //) erscheint, so dass zum Beispiel http://stackoverflow.comhttp://stackoverflow.com zurückgegeben wird.
var url = document.URL.split('://');
var last_slash;
var result;
if (url[1].charAt(url[1].length - 1) === '/') {
url[1] = url[1].substring(0, url[1].length - 1);
}
last_slash = url[1].lastIndexOf('/');
result = url[0] + '://' + ((last_slash !== -1) ? url[1].substring(0, last_slash) : url[1]);
edit: jsfiddle http://jsfiddle.net/CV6d4/
Sie verwenden bereits Split, also warum nicht die Zeichenfolge auf "/" anstelle von ": //" aufteilen, das letzte Element aus dem Array öffnen und sie erneut verbinden. http://jsfiddle.net/8chxf/ – nxt
Sie müssen es zwicken, um die Ecke Fällen, dh wenn Sie ein "/" am Ende der URL in Ihrer Lösung hinzufügen, funktioniert es nicht, und es auch funktioniert nicht auf "http://www.domain.com". – Emily
document.location ist für document.URL veraltet - window.location.href ist ebenfalls gültig. – mplungjan
Versuchen Sie folgendes:
var url = 'http://www.domain.com/first/second/last';
for(var i=url.length-1; i>=0;i--){
if(url[i]!='/'){
url= url.substr(0,i);
}
else{
alert(url);
break;
}
}
'var firstpart = url.substring (0, url.lastIndexOf ("/"))' – mplungjan
@mplungjan: bitte Ihren Kommentar als Antwort hinzufügen, funktioniert diese! – albuvee
Mögliches Duplikat von [Letztes Segment der URL] (http://stackoverflow.com/questions/4758103/last-segment-of-url) – Basilevs