2012-02-04 8 views
8

Stavo esaminando questo problema ma non sono riuscito a trovare risposte solide per questo scopo specifico. Diciamo che ho un URL di ...Come faccio a rimuovere le variabili e il nome file dall'URL utilizzando javascript/jquery?

http://mysite.com/stuff/index.php?search=my+search

Come posso afferrare questa URL e rimuovere index.php? Search = il mio + ricerca da esso in modo che sarebbe solo http://mysite.com/stuff/? Fondamentalmente voglio solo prendere l'URL genitore senza un nome file o ottenere variabili ... Non importa quale sia l'URL (quindi non devo personalizzare la funzione per ogni pagina su cui voglio usarlo)

Quindi per un ulteriore esempio, se fosse solo ...

http://mysite.com/silly.php?hello=ahoy

vorrei solo tornare alla radice di http://mysite.com

qualcuno mi può dare una mano a capire questo fuori? Sono completamente perso.

risposta

17

Prova utilizzando lastIndexOf("/"):

var url = "http://mysite.com/stuff/index.php?search=my+search"; 
url = url.substring(0, url.lastIndexOf("/") + 1); 
alert(url); // it will be "http://mysite.com/stuff/" 

O

var url = "http://mysite.com/silly.php?hello=ahoy"; 
url = url.substring(0, url.lastIndexOf("/") + 1); 
alert(url); // it will be "http://mysite.com/" 
+0

Grazie, immagino che userò lastIndexOf costantemente ora. – Ian

+0

Felice di aiutare .. – Aliostad

+0

'console.log (url)' è molto, molto meglio di alert. – Tim

0

Si sta cercando location.host o location.hostname. Ma ti piacerebbe estrarli da una stringa completa piuttosto che dall'URL corrente?

ho letto la questione ancora una volta e sembra che si desidera ottenere la stringa che si compone di:

location.protocol + "//" + location.host + location.pathname 

giusto?

+4

'location.pathname' conterrà' index.php' –

2

Se l'URL è in str:

newstr = str.replace(/\/[^\/]+$/,""); 

newstr ora contiene il percorso fino a, ma escludendo l'ultima / in la stringa. Per mantenere la finale /, uso:

newstr = str.replace(/\/[^\/]+$/,"/"); 
2

divisa su "/", scartare l'ultimo pezzo, unisciti a loro backup, aggiungere lo slash.

var path = location.href.split('/'); 
path.pop(); 
path = path.join("/") + "/"; 
Problemi correlati