Quel est le moyen simple de supprimer la chaîne de requête d'un chemin en Javascript? J'ai vu un plugin pour Jquery qui utilise window.location.search. Je ne peux pas faire cela: l'URL dans mon cas est une variable définie à partir d'AJAX.
var testURL = '/Products/List?SortDirection=dsc&Sort=price&Page=3&Page2=3&SortOrder=dsc'
javascript
jquery
Mathias F
la source
la source
split('?', 1)[0]
.?
est une chaîne littérale, pas une expression régulière..split(/[?#]/)[0]
?2e mise à jour: Pour tenter de fournir une réponse complète, je compare les trois méthodes proposées dans les différentes réponses.
Résultats dans Firefox 3.5.8 sur Mac OS X 10.6.2:
Résultats dans Chrome 5.0.307.11 sur Mac OS X 10.6.2:
Notez que la méthode de sous-chaîne est inférieure en fonctionnalité car elle renvoie une chaîne vide si l'URL ne contient pas de chaîne de requête. Les deux autres méthodes renverraient l'URL complète, comme prévu. Cependant, il est intéressant de noter que la méthode des sous-chaînes est la plus rapide, en particulier dans Firefox.
1ère MISE À JOUR: En fait, la méthode split () suggérée par Robusto est une meilleure solution que celle que j'ai suggérée plus tôt, car elle fonctionnera même s'il n'y a pas de chaîne de requête:
Réponse originale:
la source
Cela peut être une vieille question, mais j'ai essayé cette méthode pour supprimer les paramètres de requête. Cela semble fonctionner correctement pour moi car j'avais besoin d'un rechargement combiné avec la suppression des paramètres de requête.
De plus, puisque j'utilise une simple opération d'addition de chaînes, je suppose que les performances seront bonnes. Mais il vaut toujours la peine de comparer avec des extraits de cette réponse
la source
Un moyen simple est que vous pouvez faire comme suit
la source
Si vous aimez RegEx ...
la source
a++;
. Correction des tests, dans mon Firefox 3.6 sur un iMac 2.93Ghz Core 2 Duo, j'obtiens 8ms pour le RegEx, et 3ms pour la méthode split ... Néanmoins +1 pour la réponse, car c'est encore une autre option.match()
renvoie un objet. Vous ne voulez probablement pas ça. Appelez-toString()
le (ou+''
).la source
Si vous utilisez backbone.js (qui contient
url anchor
comme route), l'urlquery string
peut apparaître:avant
url anchor
:après
url anchor
:Solution:
la source
Une approche utilisant la norme
URL
:la source
Si vous avez besoin d'effectuer des opérations complexes sur l'URL, vous pouvez jeter un œil au plugin d'analyse d'url jQuery .
la source
C'est comme ça que je l'ai fait, avec le support RegEx.
la source