Il existe une propriété de l' window.location
objet intégré qui fournira cela pour la fenêtre actuelle.
// 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
Mettez à jour, utilisez les mêmes propriétés pour n'importe quelle URL:
Il s'avère que ce schéma est normalisé sous la forme d'une interface appelée URLUtils , et devinez quoi? L' window.location
objet existant et les éléments d'ancrage implémentent l'interface.
Vous pouvez donc utiliser les mêmes propriétés ci-dessus pour n'importe quelle URL - créez simplement une ancre avec l'URL et accédez aux propriétés:
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]: la prise en charge par le navigateur des propriétés qui incluent le port n'est pas cohérente, voir: http://jessepollak.me/chrome-was-wrong-ie-was-right
Cela fonctionne dans les dernières versions de Chrome et Firefox . Je n'ai pas de versions d'Internet Explorer à tester, alors testez-vous avec l'exemple JSFiddle.
Il y a aussi un URL
objet à venir qui offrira ce support pour les URL elles-mêmes, sans l'élément d'ancrage. Il semble qu'aucun navigateur stable ne le supporte pour le moment, mais on dit qu'il vient dans Firefox 26. Lorsque vous pensez que vous pourriez avoir un support pour cela, essayez-le ici .
Vous donnera un tableau contenant toutes les parties de l'URL, auquel vous pouvez accéder comme un tableau normal.
Ou une solution toujours plus élégante suggérée par @Dylan, avec uniquement les parties du chemin:
la source
S'il s'agit de l' url actuelle, utilisez window.location.pathname sinon utilisez cette expression régulière:
la source
/.+?\:\/\/.+?(\/.+?)?(?:#|\?|)?$/
Il existe une méthode API Web utile appelée URL
la source
Dans le cas où vous souhaitez obtenir des parties d'une URL que vous avez stockée dans une variable, je peux recommander URL-Parse
Selon la documentation, il extrait les parties suivantes:
la source
Si vous avez une chaîne d'URL abstraite (pas de l'actuel
window.location
), vous pouvez utiliser cette astuce:Merci à jlong
la source