Jaki jest łatwy sposób na usunięcie kwerendy ze ścieżki w JavaScript? Widziałem wtyczkę dla Jquery, która używa window.location.search. Nie mogę tego zrobić: adres URL w moim przypadku to zmienna ustawiana z AJAX.
var testURL = '/Products/List?SortDirection=dsc&Sort=price&Page=3&Page2=3&SortOrder=dsc'
javascript
jquery
Mathias F.
źródło
źródło
split('?', 1)[0]
.?
jest ciąg znaków, a nie wyrażenie regularne..split(/[?#]/)[0]
?Druga aktualizacja: próbując udzielić wyczerpującej odpowiedzi, porównuję trzy metody zaproponowane w różnych odpowiedziach.
Wyniki w przeglądarce Firefox 3.5.8 w systemie Mac OS X 10.6.2:
Wyniki w Chrome 5.0.307.11 w systemie Mac OS X 10.6.2:
Zwróć uwagę, że metoda podciągów ma gorszą funkcjonalność, ponieważ zwraca pusty ciąg, jeśli adres URL nie zawiera zapytania. Pozostałe dwie metody zwróciłyby pełny adres URL, zgodnie z oczekiwaniami. Warto jednak zauważyć, że metoda podciągów jest najszybsza, szczególnie w przeglądarce Firefox.
1. AKTUALIZACJA: Właściwie metoda split () sugerowana przez Robusto jest lepszym rozwiązaniem niż to, które zasugerowałem wcześniej, ponieważ będzie działać nawet wtedy, gdy nie ma zapytania:
Oryginalna odpowiedź:
źródło
To może być stare pytanie, ale próbowałem tej metody, aby usunąć parametry zapytania. Wydaje się, że działa to bezproblemowo, ponieważ potrzebowałem również przeładowania połączonego z usunięciem parametrów zapytania.
Ponieważ używam prostej operacji dodawania ciągów, sądzę, że wydajność będzie dobra. Ale nadal warto porównać ze fragmentami w tej odpowiedzi
źródło
Prosty sposób jest następujący
źródło
Jeśli interesujesz się wyrażeniami regularnymi ...
źródło
a++;
. Naprawiając testy, w moim Firefoksie 3.6 na iMacu 2,93Ghz Core 2 Duo, otrzymuję 8ms dla RegEx i 3ms dla metody split ... Niemniej jednak +1 za odpowiedź, bo to jeszcze inna opcja.match()
zwraca obiekt. Prawdopodobnie tego nie chcesz. WezwijtoString()
to (lub+''
).źródło
Jeśli używasz pliku backbone.js (który zawiera
url anchor
jako trasę),query string
może pojawić się adres URL :przed
url anchor
:po
url anchor
:Rozwiązanie:
źródło
Podejście wykorzystujące standard
URL
:źródło
Jeśli potrzebujesz wykonać złożoną operację na adresie URL, możesz rzucić okiem na wtyczkę parsera jQuery url .
źródło
Tak to zrobiłem, ma też obsługę RegEx.
źródło