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 }
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"]
si jquery est une option, vous pouvez effectuer les opérations suivantes:
$.inArray("mine", window.location.pathname.split("/"))
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.
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
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