Es gibt eine Eigenschaft des integrierten window.location
Objekts, die diese für das aktuelle Fenster bereitstellt.
// If URL is http://www.somedomain.com/account/search?filter=a#top
window.location.pathname // /account/search
// For reference:
window.location.host // www.somedomain.com (includes port if there is one)
window.location.hostname // www.somedomain.com
window.location.hash // #top
window.location.href // http://www.somedomain.com/account/search?filter=a#top
window.location.port // (empty string)
window.location.protocol // http:
window.location.search // ?filter=a
Aktualisieren Sie, verwenden Sie die gleichen Eigenschaften für jede URL:
Es stellt sich heraus, dass dieses Schema als Schnittstelle namens URLUtils standardisiert wird , und wissen Sie was? Sowohl das vorhandene window.location
Objekt als auch die Ankerelemente implementieren die Schnittstelle.
Sie können also für jede URL dieselben Eigenschaften wie oben verwenden. Erstellen Sie einfach einen Anker mit der URL und greifen Sie auf die Eigenschaften zu:
var el = document.createElement('a');
el.href = "http://www.somedomain.com/account/search?filter=a#top";
el.host // www.somedomain.com (includes port if there is one[1])
el.hostname // www.somedomain.com
el.hash // #top
el.href // http://www.somedomain.com/account/search?filter=a#top
el.pathname // /account/search
el.port // (port if there is one[1])
el.protocol // http:
el.search // ?filter=a
[1]: Die Browserunterstützung für die Eigenschaften, die den Port enthalten, ist nicht konsistent. Siehe: http://jessepollak.me/chrome-was-wrong-ie-was-right
Dies funktioniert in den neuesten Versionen von Chrome und Firefox . Ich habe keine Versionen von Internet Explorer zum Testen. Testen Sie sich daher anhand des JSFiddle-Beispiels.
Es gibt auch ein URL
Objekt, das diese Unterstützung für URLs selbst ohne das Ankerelement bietet. Es sieht so aus, als ob derzeit keine stabilen Browser dies unterstützen, aber es wird gesagt, dass es in Firefox 26 verfügbar ist. Wenn Sie glauben, dass Sie Unterstützung dafür haben, probieren Sie es hier aus .
Sie erhalten ein Array mit allen URL-Teilen, auf die Sie wie bei einem normalen Array zugreifen können.
Oder eine immer elegantere Lösung, die von @Dylan vorgeschlagen wurde und nur die Pfadteile enthält:
quelle
Wenn dies die aktuelle URL ist, verwenden Sie window.location.pathname. Verwenden Sie andernfalls diesen regulären Ausdruck:
quelle
/.+?\:\/\/.+?(\/.+?)?(?:#|\?|)?$/
Es gibt eine nützliche Web-API-Methode namens URL
quelle
Wenn Sie Teile einer URL erhalten möchten, die Sie in einer Variablen gespeichert haben, kann ich URL-Parse empfehlen
Gemäß der Dokumentation werden die folgenden Teile extrahiert:
quelle
Wenn Sie eine abstrakte URL-Zeichenfolge haben (nicht aus der aktuellen
window.location
), können Sie diesen Trick verwenden:Danke an jlong
quelle