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 :/

4voto

Timmerz Punkte 5871

Sie können ein Eingabefeld hinzufügen und den Benutzer dann auffordern, den Wert dorthin zu kopieren... auf diese Weise ist es wirklich einfach:

Hallo Benutzer! Können Sie bitte den Wert aus der Adressleiste kopieren, wo zum Beispiel steht &m=2? Vielen Dank! Und dann, wenn Sie könnten... fügen Sie ihn unten in das Feld ein und klicken Sie auf die Schaltfläche Fertig?

//...den Wert beim Klicken lesen
</code></pre>

<hr>

<p>Ok, mal im Ernst... ich habe diesen Code gefunden und er scheint gut zu funktionieren:</p>

<p><a href="http://www.developerdrive.com/2013/08/turning-the-querystring-into-a-json-object-using-javascript/" rel="nofollow">http://www.developerdrive.com/2013/08/turning-the-querystring-into-a-json-object-using-javascript/</a></p>

<pre><code>function queryToJSON() {
    var pairs = location.search.slice(1).split('&');

    var result = {};
    pairs.forEach(function(pair) {
        pair = pair.split('=');
        result[pair[0]] = decodeURIComponent(pair[1] || '');
    });

    return JSON.parse(JSON.stringify(result));
}

var query = queryToJSON();
</code></pre></x-turndown>

4voto

Syed Shahjahan Punkte 101

Wir können die c Parameterwerte auf einfacherem Wege erhalten, ohne alle Parameter durchzulaufen. Siehe unten stehendes jQuery, um die Parameter zu erhalten.

1. Um den Parameterwert zu erhalten:

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

url.match(**/(c=)[0-9A-Za-z-]+/ig**)[0].replace('c=',"")

(oder)

url.match(**/(c=)[0-z-]+/ig**)[0].replace('c=',"")

gibt als Zeichenkette zurück

"m2-m3-m4-m5"

2. Um den Parameterwert zu ersetzen:

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

url.replace(**/(c=)[0-9A-Za-z-]+/ig, "c=m2345"**)

0 Stimmen

Wo ist der jQuery. Könntest du es einfach JS nennen, wenn es JS ist, weil es kein jQuery gibt.

4voto

theodore hogberg Punkte 312
window.location.href.split("?")

dann den ersten Index ignorieren

Array.prototype.slice.call(window.location.href.split("?"), 1) 

gibt ein Array Ihrer URL-Parameter zurück

var paramArray = Array.prototype.slice.call(window.location.href.split(/[?=]+/), 1);
var paramObject = paramArray.reduce(function(x, y, i, a){ (i%2==0) ?  (x[y] = a[i+1]) : void 0; return x; }, {});

Etwas ausführlicher/hackig, aber auch funktional, paramObject enthält alle Parameter als JS-Objekt gemappt

3voto

Bilal Saidumarov Punkte 139

Um alle URL-Parameter aus dem Suchobjekt in window.location als JSON zu extrahieren

export const getURLParams = location => {
    const searchParams = new URLSearchParams(location.search)
    const params = {}

    for (let key of searchParams.keys()) {
        params[key] = searchParams.get(key)
    }

    return params
}

console.log(getURLParams({ search: '?query=someting&anotherquery=anotherthing' }))

// --> {query: "someting", anotherquery: "anotherthing"}

3voto

Qiang Punkte 1398
function getParamValue(param) {
    var urlParamString = location.search.split(param + "=");
    if (urlParamString.length <= 1) return "";
    else {
        var tmp = urlParamString[1].split("&");
        return tmp[0];
    }
}

Dies sollte in Ihrem Fall funktionieren, unabhängig davon, ob der Parameter am Ende steht oder nicht.

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