Ich habe viele jQuery-Beispiele gesehen, bei denen Parametergröße und Name unbekannt sind.
Meine URL wird immer nur 1 Zeichenfolge haben:
http://example.com?sent=yes
Ich möchte nur erkennen:
- Existiert
sent
? - Ist es gleich "Ja"?
jquery
url
parameters
query-string
querystringparameter
LeBlaireau
quelle
quelle
Antworten:
Beste Lösung hier .
Und so können Sie diese Funktion verwenden, vorausgesetzt, die URL lautet ,
http://dummy.com/?technology=jquery&blog=jquerybyexample
.quelle
false
odernull
für leere Suche zurück&
oder=
ein Parameterwert vorhanden ist.Lösung ab 2020
Wir haben: http://example.com?sent=yes
Does gesendet exist ?
Ist es gleich "Ja"?
und dann vergleiche es einfach.
quelle
if ('URLSearchParams' in window) { // Browser supports URLSearchParams}
Siehe hierjQuery-Codefragment, um die in der URL gespeicherten dynamischen Variablen als Parameter abzurufen und als JavaScript-Variablen zu speichern, die für die Verwendung mit Ihren Skripten bereit sind:
example.com?param1=name¶m2=&id=6
Beispielparameter mit Leerzeichen
quelle
return results[1] || 0;
sollte es seinreturn decodeURI(results[1]) || 0;
|| 0
Teil, da es bereits eine Überprüfung für das Ergebnis gibt, würde es nicht immer das Übereinstimmungsarray zurückgeben?Ich halte das immer als eine Zeile. Jetzt hat params die vars:
mehrzeilig:
als eine Funktion
die Sie verwenden könnten als:
oder
quelle
replace(/[?&;]+([^=]+)=([^&;]*)/gi
, um ";" Charakter auch als Trennzeichen.var params={};window.location.hash.replace(/[#&]+([^=&]+)=([^&]*)/gi,function(str,key,value){params[key] = value;});
Dies ist nützlich für Dinge wie AJAX, bei denen das Hash-In-Fenster mit Ajax-Anfragen aktualisiert wird, aber auch einer, bei dem der Benutzer zu einer Uri wechselt mit einem Hash.Noch eine alternative Funktion ...
quelle
param('t') == param('sent') == 'yes'
im OP-Beispiel. Hier ist ein Fix :return (location.search.split(new RegExp('[?&]' + name + '='))[1] || '').split('&')[0]
; Beachten Sie auch, dass Sie nicht feststellen können, ob der Parameter vorhanden ist, da Sie eine leere Zeichenfolge für fehlende Parameter erhalten.return (location.search.split('?' + name + '=')[1] || location.search.split('&' + name + '=')[1] || '').split('&')[0];
Vielleicht ist es zu spät. Diese Methode ist jedoch sehr einfach und unkompliziert
UPDATE
Erfordert das URL-Plugin: plugins.jquery.com/url
Thanks -Ripounet
quelle
Oder Sie können diese nette kleine Funktion verwenden, denn warum überkomplizierte Lösungen?
was noch besser aussieht, wenn es vereinfacht und onelined ist:
Einzeilige Lösung
Aber was ist, wenn Sie verschlüsselte Zeichen oder mehrwertige Schlüssel haben ?
Sie sehen diese Antwort besser: Wie kann ich Abfragezeichenfolgenwerte in JavaScript abrufen?
Sneak Peak
quelle
Verwenden von
URLSearchParams
:Seien Sie vorsichtig mit der Kompatibilität (Meistens ist es in Ordnung, aber IE und Edge können unterschiedliche Geschichten sein. Überprüfen Sie dies auf kompatible Referenzen: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams )
quelle
Dieser ist einfach und hat für mich gearbeitet
Wenn Ihre URL also http://www.yoursite.com?city=4 lautet
Versuche dies
quelle
Vielleicht möchten Sie Zahnarzt JS einen Blick geben? (Haftungsausschluss: Ich habe den Code geschrieben)
Code:
Mit Dentist JS können Sie grundsätzlich die Funktion extract () für alle Zeichenfolgen (z. B. document.URL.extract ()) aufrufen und erhalten eine HashMap aller gefundenen Parameter zurück. Es ist auch anpassbar, um mit Trennzeichen und allem umzugehen.
Minimierte Version <1kb
quelle
Ich hoffe das wird helfen.
quelle
quelle
Probieren Sie diese funktionierende Demo aus http://jsfiddle.net/xy7cX/
API:
inArray
: http://api.jquery.com/jQuery.inArray/Das sollte helfen
:)
Code
quelle
Es gibt diese großartige Bibliothek: https://github.com/allmarkedup/purl
das erlaubt dir einfach zu machen
In diesem Beispiel wird davon ausgegangen, dass Sie jQuery verwenden. Sie könnten es auch einfach als einfaches Javascript verwenden, die Syntax wäre dann etwas anders.
quelle
Dies könnte übertrieben, aber es ist eine ziemlich beliebte Bibliothek jetzt verfügbar für das Parsen von URIs, genannt URI.js .
Beispiel
quelle
So einfach können Sie jede URL verwenden und Wert erhalten
Anwendungsbeispiel
Hinweis: Wenn ein Parameter mehrmals vorhanden ist (? First = value1 & second = value2), erhalten Sie den ersten Wert (value1) und den zweiten Wert als (value2).
quelle
Dies gibt Ihnen ein schönes Objekt, mit dem Sie arbeiten können
Und dann;
quelle
Dies basiert auf der Antwort von Gazoris , aber die URL dekodiert die Parameter, damit sie verwendet werden können, wenn sie andere Daten als Zahlen und Buchstaben enthalten:
quelle
Es gibt ein weiteres Beispiel für die Verwendung der Bibliothek URI.js.
Beispiel beantwortet die Fragen genau wie gestellt.
quelle
Beste Lösung hier .
Mit der obigen Funktion können Sie einzelne Parameterwerte erhalten:
quelle
Coffeescript-Version von Sameers Antwort
quelle
Eine leichte Verbesserung von Sameers Antwort: Cache-Parameter werden geschlossen, um zu vermeiden, dass bei jedem Aufruf alle Parameter analysiert und durchlaufen werden
quelle
Ich benutze das und es funktioniert. http://codesheet.org/codesheet/NF246Tzs
quelle
Mit Vanilla JavaScript können Sie einfach die Parameter (location.search) übernehmen, den Teilstring (ohne das?) Abrufen und ihn in ein Array umwandeln, indem Sie ihn durch '&' teilen.
Während Sie durch urlParams iterieren, können Sie die Zeichenfolge erneut mit '=' teilen und sie als Objekt [elmement [0]] = Element [1] zum Objekt 'params' hinzufügen. Super einfach und leicht zugänglich.
http://www.website.com/?error=userError&type=handwritten
quelle
Was ist, wenn es einen URL-Parameter wie filename = "p & g.html" & uid = 66 gibt?
In diesem Fall funktioniert die 1. Funktion nicht richtig. Also habe ich den Code geändert
quelle
Zugegeben, ich füge meine Antwort einer überbeantworteten Frage hinzu, aber dies hat folgende Vorteile:
- Nicht abhängig von externen Bibliotheken, einschließlich jQuery
- Verschmutzen des globalen Funktionsnamensraums nicht durch Erweitern von 'String'
- Keine globalen Daten erstellen und keine unnötige Verarbeitung durchführen, nachdem eine Übereinstimmung gefunden wurde
- Behandlung von Codierungsproblemen und Akzeptieren (vorausgesetzt) eines nicht codierten Parameternamens
- Vermeiden Sie explizite
for
SchleifenDann würden Sie es verwenden als:
quelle
Wenn Sie einen bestimmten Parameter aus einer bestimmten URL suchen möchten:
quelle
Eine weitere Lösung, die jQuery und JSON verwendet, sodass Sie über ein Objekt auf die Parameterwerte zugreifen können.
Angenommen, Ihre URL ist
http://example.com/?search=hello+world&language=en&page=3
Danach müssen nur noch die folgenden Parameter verwendet werden:
zurückgeben
Die nützlichste Verwendung besteht darin, sie beim Laden der Seite auszuführen und eine globale Variable zu verwenden, um die Parameter überall dort zu verwenden, wo Sie sie benötigen.
Wenn Ihr Parameter numerische Werte enthält, analysieren Sie einfach den Wert.
Wenn keine Parameter vorhanden sind, handelt
param
es sich nur um ein leeres Objekt.quelle
quelle
benutze das
quelle