1735 Stimmen

Holen Sie die Werte aus den "GET"-Parametern (JavaScript)

Ich habe eine URL mit einigen GET-Parametern wie folgt:

www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5 

Ich muss den gesamten Wert von c erhalten. Ich habe versucht, die URL zu lesen, aber ich habe nur m2 erhalten. Wie mache ich das mit JavaScript?

9 Stimmen

Bevor Sie eine neue Antwort posten, bedenken Sie bitte, dass es bereits 50+ Antworten auf diese Frage gibt. Stellen Sie bitte sicher, dass Ihre Antwort Informationen enthält, die nicht unter den vorhandenen Antworten zu finden sind.

0 Stimmen

Var url_string = "example.com/t.html?a=1&b=3&c=m2-m3-m4-m5"; //window.location.href var url = new URL(url_string); var c = url.searchParams.get("c"); console.log(c);

1 Stimmen

Es ist verrückt, dass eine, was sollte sein, einfache Frage für JS 50+ Antworten erfordert :/

7voto

thezar Punkte 1268
// Lese die GET-URL-Variablen einer Seite ein und gebe sie als assoziatives Array zurück.
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

// Verwendung für URL: http://my.site.com/location?locationId=53cc272c0364aefcb78756cd&shared=false
var id = getUrlVars()["locationId"];

Erhalten von hier: http://jquery-howto.blogspot.ru/2009/09/get-url-parameters-values-with-jquery.html

6voto

Elegante, funktionale Style-Lösung

Erstellen wir ein Objekt, das URL-Parameter-Namen als Schlüssel enthält, dann können wir den Parameter leicht nach seinem Namen extrahieren:

// URL: https://example.com/?test=true&orderId=9381  

// Erstellen eines Objekts mit Schlüssel-Wert-Paaren
export const queryStringParams = window.location.search
  .split('?')[1]
  .split('&')
  .map(keyValue => keyValue.split('='))
  .reduce((params, [key, value]) => {
    params[key] = value;
    return params;
  }, {});

type QueryStringParams = {
  [key: string]: string;
};

// Rückgabe des URL-Parameters namens "orderId"
return queryStringParams.orderId;

0 Stimmen

Ich liebe das, aber es hat bei mir nicht funktioniert, ohne darauf zu achten, den Akkumulator in der reduce-Funktion zurückzugeben

0 Stimmen

@Ella, es war ein Tippfehler, es gibt keine Möglichkeit, dass es ohne ein return funktioniert.

0 Stimmen

Sieht jetzt besser aus, ich hoffe, Sie schaffen es auf die erste Seite!

6voto

Sudhakar Reddy Punkte 308

Einfacher Weg

function getParams(url){
        var regex = /[?&]([^=#]+)=([^&#]*)/g,
            params = {},
            match;
        while(match = regex.exec(url)) {
            params[match[1]] = match[2];
        }
        return params;
    }

dann rufe es mit getParams(url) auf

5voto

harryrein Punkte 79
window.location.search.slice(1).split('&').reduce((res, val) => ({...res, [val.split('=')[0]]: val.split('=')[1]}), {})

5voto

Wolf7176 Punkte 199
// http:localhost:8080/path?param_1=a¶m_2=b
var getParamsMap = function () {
    var params = window.location.search.split("&");
    var paramsMap = {};
    params.forEach(function (p) {
        var v = p.split("=");
        paramsMap[v[0]]=decodeURIComponent(v[1]);
    });
    return paramsMap;
};

// -----------------------

console.log(getParamsMap()["param_1"]);  // should log "a"

0 Stimmen

Dies gibt den ersten Parameter mit '?' zurück.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X