Was ist eine einfache Möglichkeit, den Querystring aus einem Pfad in Javascript zu entfernen? Ich habe ein Plugin für Jquery gesehen, das window.location.search verwendet. Das kann ich nicht: Die URL ist in meinem Fall eine Variable, die von AJAX festgelegt wird.
var testURL = '/Products/List?SortDirection=dsc&Sort=price&Page=3&Page2=3&SortOrder=dsc'
javascript
jquery
Mathias F.
quelle
quelle
split('?', 1)[0]
.?
ist ein String-Literal, kein regulärer Ausdruck..split(/[?#]/)[0]
?2. Update: Um eine umfassende Antwort zu geben, vergleiche ich die drei in den verschiedenen Antworten vorgeschlagenen Methoden.
Ergebnisse in Firefox 3.5.8 unter Mac OS X 10.6.2:
Ergebnisse in Chrome 5.0.307.11 unter Mac OS X 10.6.2:
Beachten Sie, dass die Teilstring-Methode eine schlechtere Funktionalität aufweist, da sie eine leere Zeichenfolge zurückgibt, wenn die URL keinen Querystring enthält. Die beiden anderen Methoden würden erwartungsgemäß die vollständige URL zurückgeben. Es ist jedoch interessant festzustellen, dass die Teilzeichenfolgenmethode die schnellste ist, insbesondere in Firefox.
1. UPDATE: Tatsächlich ist die von Robusto vorgeschlagene split () -Methode eine bessere Lösung als die zuvor vorgeschlagene, da sie auch dann funktioniert, wenn kein Querystring vorhanden ist:
Ursprüngliche Antwort:
quelle
Dies mag eine alte Frage sein, aber ich habe diese Methode versucht, um Abfrageparameter zu entfernen. Scheint für mich reibungslos zu funktionieren, da ich auch ein Neuladen in Kombination mit dem Entfernen von Abfrageparametern benötigte.
Da ich eine einfache Operation zum Hinzufügen von Zeichenfolgen verwende, schätze ich, dass die Leistung gut sein wird. Aber es lohnt sich immer noch, mit Ausschnitten in dieser Antwort zu vergleichen
quelle
Ein einfacher Weg ist, wie folgt vorzugehen
quelle
Wenn Sie RegEx mögen ...
quelle
a++;
. Wenn ich die Tests behebe, erhalte ich in meinem Firefox 3.6 auf einem iMac 2.93Ghz Core 2 Duo 8 ms für die RegEx und 3 ms für die Split-Methode ... Trotzdem +1 für die Antwort, da dies noch eine weitere Option ist.match()
gibt ein Objekt zurück. Das willst du wahrscheinlich nicht. Rufen SietoString()
es an (oder+''
).quelle
Wenn Sie backbone.js verwenden (das
url anchor
als Route enthält ), wirdquery string
möglicherweise folgende URL angezeigt:vorher
url anchor
:nachher
url anchor
:Lösung:
quelle
Ein Ansatz unter Verwendung des Standards
URL
:quelle
Wenn Sie komplexe Operationen an URLs ausführen müssen, können Sie sich das jQuery-URL-Parser-Plugin ansehen .
quelle
So habe ich es gemacht, hat auch RegEx-Unterstützung.
quelle