2010-04-19 31 views
18

Sé que puedo usar window.location.pathname para devolver una url, pero ¿cómo puedo analizar la url?jquery - obtener la ruta url?

Tengo una url como esta: http://localhost/messages/mine/9889 y estoy tratando de verificar si existe "mío" en esa url?

lo tanto, si "mío" es la segunda pieza en esa URL, quiero escribir una sentencia if basado en eso ...

if(second argument == 'mine') { do something } 

Respuesta

44
if (location.pathname.split("/")[2] == "mine") { do something } 

Aunque es obvio que sería mejor para comprobar si hay suficientes elementos de la matriz que se devuelve por división:

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

Tenga en cuenta que a pesar de que los índices de matriz son cero en base, queremos especificar 2 como el índice de conseguir lo que se refieren como el segundo argumento como dividida sp lits "/ mensajes/minas/9889" en una matriz de 4 elementos:

["", "messages", "mine", "9889"] 
+1

Realmente como la simplicidad de este. Para eliminar cualquier elemento vacío y tener una buena matriz de rutas, use esto: 'var locationPaths = location.pathname.split ("/"). Filter (function (n) {return n! = ''});' – jnpWebDeveloper

5
if (window.location.pathname.split("/")[2] == "mine") { 
    // it exists 
}; 

window.location.pathname es una cadena al final del día, por lo que el habitual string methods aplican.

8

si jQuery es una opción , podría hacer lo siguiente:

$.inArray("mine", window.location.pathname.split("/")) 
+0

Tenga en cuenta que esto coincidirá con _any_ 'mío', no solo con el de la segunda parte de la URL. –

1

Aunque esta es una consulta muy antigua, aparece en alguna búsqueda. Así que añadir mis notas .. aquí

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

Lo anterior se debe utilizar para la verificación de encontrar si el URL tiene una cadena ... donde como para encontrar el camino, sería mejor utilizar

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

esperanza esto ahorrará algún tiempo los

Cuestiones relacionadas