Widziałem wiele przykładów jQuery, w których rozmiar i nazwa parametru są nieznane.
Mój adres URL będzie miał zawsze tylko 1 ciąg:
http://example.com?sent=yes
Chcę tylko wykryć:
- Czy
sent
istnieje - Czy to jest równe „tak”?
jquery
url
parameters
query-string
querystringparameter
LeBlaireau
źródło
źródło
Odpowiedzi:
Najlepsze rozwiązanie tutaj .
A to w jaki sposób można korzystać z tej funkcji, zakładając, że adres URL jest
http://dummy.com/?technology=jquery&blog=jquerybyexample
.źródło
false
lubnull
puste wyszukiwanie&
lub=
ma wartość parametru.Rozwiązanie od 2020 roku
Mamy: http://example.com?sent=yes
Czy wysłał opuszczeniu w ?
Czy to jest równe „tak”?
a następnie po prostu porównaj.
źródło
if ('URLSearchParams' in window) { // Browser supports URLSearchParams}
Zobacz tutajFragment kodu jQuery, aby uzyskać dynamiczne zmienne przechowywane w adresie URL jako parametry i przechowywać je jako zmienne JavaScript gotowe do użycia ze skryptami:
example.com?param1=name¶m2=&id=6
przykładowe parametry ze spacjami
źródło
return results[1] || 0;
tego powinno byćreturn decodeURI(results[1]) || 0;
|| 0
części, skoro już jest sprawdzanie wyniku, czy nie zawsze zwróci tablicę dopasowania?Zawsze trzymam to jako jedną linię. Teraz params ma zmienne:
wielowarstwowy:
jako funkcja
którego możesz użyć jako:
lub
źródło
replace(/[?&;]+([^=]+)=([^&;]*)/gi
aby ponownie skonfigurować „;” znak jako separator.var params={};window.location.hash.replace(/[#&]+([^=&]+)=([^&]*)/gi,function(str,key,value){params[key] = value;});
Przydaje się to w takich rzeczach, jak AJAX, gdzie skrót w oknie jest aktualizowany za pomocą żądań ajax, ale jeden użytkownik może również przejść do interfejsu użytkownika zawierający skrót.Kolejna alternatywna funkcja ...
źródło
param('t') == param('sent') == 'yes'
w przykładzie PO. Oto dylemat:return (location.search.split(new RegExp('[?&]' + name + '='))[1] || '').split('&')[0]
; Zauważ również, że nie możesz stwierdzić, czy parametr istnieje, ponieważ otrzymujesz pusty ciąg znaków dla brakujących parametrów.return (location.search.split('?' + name + '=')[1] || location.search.split('&' + name + '=')[1] || '').split('&')[0];
Może być za późno. Ale ta metoda jest bardzo łatwa i prosta
AKTUALIZACJA
Wymaga wtyczki URL: plugins.jquery.com/url
Dzięki -Ripounet
źródło
Lub możesz użyć tej schludnej małej funkcji, ponieważ po co nadmiernie skomplikowane rozwiązania?
który wygląda jeszcze lepiej, gdy jest uproszczony i on-line:
tl; dr rozwiązanie jednowierszowe
Ale co, jeśli masz zakodowane znaki lub klucze wielowartościowe ?
Lepiej zobacz tę odpowiedź: Jak uzyskać wartości ciągu zapytania w JavaScript?
Zapowiedź
źródło
Używanie
URLSearchParams
:Uważaj na kompatybilność (przeważnie jest w porządku, ale IE i Edge mogą być inną historią, sprawdź to w celu uzyskania kompatybilnego odniesienia: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams )
źródło
Ten jest prosty i działał dla mnie
więc jeśli twój adres URL to http://www.yoursite.com?city=4
Spróbuj tego
źródło
Być może chcesz rzucić okiem na Dentist JS ? (wyłączenie odpowiedzialności: napisałem kod)
kod:
z Dentist JS możesz w zasadzie wywołać funkcję extract () na wszystkich ciągach znaków (np. document.URL.extract ()), a otrzymasz HashMap wszystkich znalezionych parametrów. Można go również dostosowywać do obsługi ograniczników i wszystkich innych.
Wersja zminimalizowana <1kb
źródło
Mam nadzieję, że to pomoże.
źródło
źródło
Wypróbuj działające demo http://jsfiddle.net/xy7cX/
API:
inArray
: http://api.jquery.com/jQuery.inArray/To powinno pomóc
:)
kod
źródło
Jest taka wspaniała biblioteka: https://github.com/allmarkedup/purl
co pozwala zrobić po prostu
Przykładem jest założenie, że używasz jQuery. Możesz również użyć go jako zwykłego javascript, wówczas składnia byłaby nieco inna.
źródło
To może być przesada, ale jest to dość popularne biblioteki teraz dostępne w celu analizowania URI, zwanych URI.js .
Przykład
źródło
Tak prosty, że możesz użyć dowolnego adresu URL i uzyskać wartość
Przykład użycia
Uwaga: Jeśli parametr występuje kilka razy (? Pierwszy = wartość1 i drugi = wartość2), otrzymasz pierwszą wartość (wartość1) i drugą wartość jako (wartość2).
źródło
To da ci przyjemny przedmiot do pracy
I wtedy;
źródło
Jest to oparte na odpowiedzi Gazoris , ale adres URL dekoduje parametry, dzięki czemu można ich użyć, gdy zawierają dane inne niż cyfry i litery:
źródło
Istnieje inny przykład korzystania z biblioteki URI.js.
Przykład odpowiada dokładnie na zadane pytania.
źródło
Najlepsze rozwiązanie tutaj .
Dzięki powyższej funkcji można uzyskać wartości poszczególnych parametrów:
źródło
Wersja odpowiedzi Coffeescript dla Sameera
źródło
Niewielka poprawa odpowiedzi Sameera, buforowanie parametrów do zamknięcia, aby uniknąć analizowania i zapętlania wszystkich parametrów przy każdym wywołaniu
źródło
Używam tego i działa. http://codesheet.org/codesheet/NF246Tzs
źródło
W waniliowym JavaScript możesz łatwo pobrać parametry (location.search), pobrać podłańcuch (bez?) I przekształcić go w tablicę, dzieląc ją na „&”.
Podczas iteracji przez urlParams możesz następnie ponownie podzielić ciąg za pomocą „=” i dodać go do obiektu „params” jako object [elmement [0]] = element [1]. Super prosty i łatwy dostęp.
http://www.website.com/?error=userError&type=handwritten
źródło
Co się stanie, jeśli w parametrze URL występuje parametr &, np. Nazwa_pliku = „p & g.html” i identyfikator użytkownika = 66
W takim przypadku 1. funkcja nie będzie działać poprawnie. Więc zmodyfikowałem kod
źródło
Wprawdzie dodaję swoją odpowiedź do pytania, na które udzielono odpowiedzi, ale ma to następujące zalety:
- Nie zależy od żadnych zewnętrznych bibliotek, w tym jQuery
- Nie zanieczyszcza globalnej przestrzeni nazw funkcji poprzez rozszerzenie „String”
- Brak tworzenia globalnych danych i niepotrzebne przetwarzanie po znalezieniu dopasowania
- Obsługa problemów z kodowaniem i akceptowanie (zakładanie) niekodowanej nazwy parametru
- Unikanie wyraźnych
for
pętliWtedy użyjesz go jako:
źródło
Jeśli chcesz znaleźć konkretny parametr z określonego adresu URL:
źródło
Inne rozwiązanie wykorzystujące jQuery i JSON, dzięki czemu można uzyskać dostęp do wartości parametrów za pośrednictwem obiektu.
Zakładając, że twój adres URL to
http://example.com/?search=hello+world&language=en&page=3
Potem wystarczy tylko użyć takich parametrów:
wracać
Najbardziej użytecznym zastosowaniem tego jest uruchomienie go przy ładowaniu strony i użycie zmiennej globalnej do użycia parametrów w dowolnym miejscu, w którym możesz ich potrzebować.
Jeśli twój parametr zawiera wartości liczbowe, po prostu przeanalizuj wartość.
Jeśli nie ma parametrów,
param
będzie tylko pusty obiekt.źródło
źródło
Użyj tego
źródło