¿Cuál es una manera fácil de eliminar la cadena de consulta de una ruta en Javascript? He visto un complemento para Jquery que usa window.location.search. No puedo hacer eso: la URL en mi caso es una variable que se establece desde AJAX.
var testURL = '/Products/List?SortDirection=dsc&Sort=price&Page=3&Page2=3&SortOrder=dsc'
javascript
jquery
Mathias F
fuente
fuente
split('?', 1)[0]
.?
es un literal de cadena, no una expresión regular..split(/[?#]/)[0]
?Segunda actualización: en un intento de proporcionar una respuesta integral, estoy comparando los tres métodos propuestos en las diferentes respuestas.
Resultados en Firefox 3.5.8 en Mac OS X 10.6.2:
Resultados en Chrome 5.0.307.11 en Mac OS X 10.6.2:
Tenga en cuenta que el método de subcadena tiene una funcionalidad inferior, ya que devuelve una cadena en blanco si la URL no contiene una cadena de consulta. Los otros dos métodos devolverían la URL completa, como se esperaba. Sin embargo, es interesante notar que el método de subcadena es el más rápido, especialmente en Firefox.
1ª ACTUALIZACIÓN: en realidad, el método split () sugerido por Robusto es una mejor solución que la que sugerí anteriormente, ya que funcionará incluso cuando no haya una cadena de consulta:
Respuesta original
fuente
Esta puede ser una pregunta antigua, pero he intentado este método para eliminar los parámetros de consulta. Parece funcionar sin problemas para mí, ya que también necesitaba una recarga combinada con la eliminación de los parámetros de consulta.
Además, como estoy usando una operación simple de adición de cadenas, supongo que el rendimiento será bueno. Pero aún así vale la pena comparar con fragmentos en esta respuesta
fuente
Una manera simple es que puedes hacer lo siguiente
fuente
Si te gusta RegEx ...
fuente
a++;
. Arreglando las pruebas, en mi Firefox 3.6 en un iMac 2.93Ghz Core 2 Duo, obtengo 8 ms para el RegEx y 3 ms para el método de división ... Sin embargo, +1 para la respuesta, porque todavía es otra opción.match()
devuelve un objeto Probablemente no quieras eso. LlamarlotoString()
(o+''
).fuente
Si usa backbone.js (que contiene
url anchor
como ruta),query string
puede aparecer la url :antes
url anchor
:despues
url anchor
:Solución:
fuente
Un enfoque que usa el estándar
URL
:fuente
Si necesita realizar operaciones complejas en URL, puede echar un vistazo al plugin jQuery url parser .
fuente
Así lo hice, también tiene soporte RegEx.
fuente