web-dev-qa-db-fra.com

jquery - obtenir le chemin de l'url?

Je sais que je peux utiliser window.location.pathname pour renvoyer une URL, mais comment puis-je analyser l'URL?

J'ai une URL comme celle-ci: http: // localhost/messages/mine/9889 et j'essaie de vérifier si "la mienne" existe dans cette URL?

Donc, si "le mien" est le deuxième élément de cette URL, je veux écrire une instruction if basée sur cela ...

if(second argument == 'mine') { do something }
19
KittyYoung
if ( location.pathname.split("/")[2] == "mine" ) { do something }

Bien qu'il serait évidemment préférable de vérifier s'il y a suffisamment d'éléments dans le tableau renvoyés par split:

var a = location.pathname.split("/");
if ( a.length > 2 && a[2] == "mine" ) { do something }

Notez que même si les index de tableau sont basés sur zéro, nous voulons spécifier 2 comme index pour obtenir ce que vous appelez le 2e argument en tant que fractionnement "/ messages/mine/9889" en un tableau de 4 éléments:

["", "messages", "mine", "9889"]
44
Mario Menger

si jquery est une option, vous pouvez effectuer les opérations suivantes:

$.inArray("mine", window.location.pathname.split("/"))
8
derek
if (window.location.pathname.split("/")[2] == "mine") {
  // it exists
};

window.location.pathname est une chaîne à la fin de la journée, donc les habituelles méthodes de chaîne s'appliquent.

5
Matt

Même s'il s'agit d'une requête très ancienne .. elle apparaît dans certaines recherches. Donc, pour ajouter mes notes .. ici

url.indexOf('mine') !== -1 

Ce qui précède devrait être utilisé pour vérifier si l'url a une chaîne ... où pour trouver le chemin, il serait préférable d'utiliser

var a = document.createElement('a');
a.href = url;
console.log(a.pathname);
// if url='http://localhost/messages/mine/9889'
// output will be /messages/mine/9889

j'espère que cela fera gagner du temps à certains

1

Vous pouvez utiliser la fonction string.split ('/') pour créer un tableau d'éléments à vérifier, sinon il existe plusieurs plugins jQuery qui analysent l'url, par exemple

http://projects.allmarkedup.com/jquery_url_parser/

0
James Westgate