JavaScript selbst hat nichts eingebaut, um Abfragezeichenfolgenparameter zu behandeln.
Code, der in einem (modernen) Browser ausgeführt wird, kann das URL
-Objekt (eine Web-API) verwenden. URL
wird auch von Node.js implementiert:
// Du kannst url_string von window.location.href erhalten, wenn du mit
// der URL der aktuellen Seite arbeiten möchtest
var url_string = "http://www.example.com/t.html?a=1&b=3&c=m2-m3-m4-m5";
var url = new URL(url_string);
var c = url.searchParams.get("c");
console.log(c);
Für ältere Browser (einschließlich Internet Explorer) kannst du diesen Polyfill verwenden.
Du könntest auch einen für URLSearchParams verwenden und die Abfragezeichenfolge mit window.location.search.substring(1)
extrahieren, um sie zu übergeben.
Du könntest auch den Code aus der Originalversion dieser Antwort verwenden, der URL
vorausgeht. Der obige Polyfill ist robust und gut getestet, und ich empfehle ihn dringend gegenüber diesem.
Du könntest auf location.search
zugreifen, was dir vom ?
-Zeichen bis zum Ende der URL oder zum Beginn des Fragmentidentifikators (#foo), je nachdem, was zuerst kommt, geben würde.
Dann kannst du es so parsen:
function parse_query_string(query) {
var vars = query.split("&");
var query_string = {};
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
var key = decodeURIComponent(pair.shift());
var value = decodeURIComponent(pair.join("="));
// Wenn der erste Eintrag mit diesem Namen ist
if (typeof query_string[key] === "undefined") {
query_string[key] = value;
// Wenn der zweite Eintrag mit diesem Namen ist
} else if (typeof query_string[key] === "string") {
var arr = [query_string[key], value];
query_string[key] = arr;
// Wenn der dritte oder spätere Eintrag mit diesem Namen ist
} else {
query_string[key].push(value);
}
}
return query_string;
}
var query_string = "a=1&b=3&c=m2-m3-m4-m5";
var parsed_qs = parse_query_string(query_string);
console.log(parsed_qs.c);
Du kannst die Abfragezeichenfolge von der URL der aktuellen Seite erhalten mit:
var query = window.location.search.substring(1);
var qs = parse_query_string(query);
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 :/