Wie lese ich mit JavaScript URL-Parameter aus?

2 Antworten

Kurz und einfach über URLSearchParams:

const url = "https:www.irgendwas.com/index.html?Nummer=2";
const params = new URLSearchParams(url.split("?")[1]);
const number = parseInt(params.get("Nummer"));
console.log(number);

Wenn du den Querystring der aktuellen URL auslesen möchtest (statt wie oben von einer festen Adresse), übergib URLSearchParams stattdessen window.location.search.

Schritt 1: Eine Funktion implementieren, die den "Query-String" auswertet:

function parseQuery(url = window.location.href){
    let query_string = url.split('#',2)[0].split('?',2)[1];
    let query = {};
    if(query_string == undefined) return query;
    let fields = query_string.split('&');
    for(let i = 0; i < fields.length; ++i){
        let field = fields[i].split('=', 2);
        if(field.length==1){
            query[decodeURIComponent(field[0])] = null;
        }
        else{
            query[decodeURIComponent(field[0])] = decodeURIComponent(field[1]);
        }
    }
    return query;
}

Schritt 2: Den Query-String auswerten und das Ergebnis ggf. in einer Variable ablegen:

let myQuery = parseQuery();

Schritt 3: Überprüfen, ob der Parameter überhaupt existiert:

if(Object.keys(myQuery).indexOf('Nummer') != -1){
    //Der Parameter 'Nummer' existiert.
}
else{
    //Der Parameter 'Nummer' fehlt.
}

Schritt 4: Wenn du den Wert als Zahl haben willst, den String in einen Integer parsen:

let myNummer = parseInt(myQuery.Nummer);