Signatur
Beschreibung
Die Eigenschaft password einer URLPattern-Instanz gibt das Teilmuster zurück, das für den Passwortteil einer URL gilt, also für den Abschnitt nach dem Doppelpunkt in https://benutzer:passwort@host/. Der Wert ist die normalisierte Form des Musters, das beim Konstruktoraufruf angegeben wurde. Benannte Gruppen (:name), Platzhalter (*) und reguläre Ausdrücke in Klammern bleiben dabei erhalten.
Wurde beim Erzeugen kein Passwortmuster angegeben, enthält die Eigenschaft den Platzhalter "*". Das Muster passt dann auf jedes Passwort, auch auf ein leeres. Das gilt sowohl für die Objekt-Schreibweise (new URLPattern({ hostname: "example.com" })) als auch für die meisten String-Muster. Die Eigenschaft ist schreibgeschützt. Um ein anderes Muster zu verwenden, muss eine neue URLPattern-Instanz erzeugt werden.
Praktisch nützlich ist password vor allem zur Kontrolle und Fehlersuche: Man sieht damit, wie der Browser ein zusammengesetztes Muster auf die einzelnen URL-Bestandteile aufgeteilt hat. Welcher Teil einer konkreten URL tatsächlich getroffen wurde, steht im Ergebnis von exec() unter result.password.input und result.password.groups.
Rückgabewert
"*".Beispiele
Passwortmuster aus einem Objekt auslesen
const pattern = new URLPattern({
protocol: "https",
hostname: "example.com",
password: "geheim-:version"
});
console.log(pattern.password);
console.log(pattern.username); // nicht angegeben
Standardwert bei String-Mustern
const pattern = new URLPattern("https://example.com/books/:id");
console.log(pattern.password);
console.log(pattern.test("https://anna:1234@example.com/books/42"));
Passwortgruppe per exec() auswerten
const pattern = new URLPattern({
hostname: "ftp.example.org",
password: "token-:key(\\d+)"
});
const result = pattern.exec("ftp://user:token-9876@ftp.example.org/");
console.log(pattern.password);
console.log(result?.password.input);
console.log(result?.password.groups.key);
// Wichtig · Fallstricke
- Schreibgeschützt:
pattern.password = "x"ändert nichts und löst im Strict Mode einenTypeErroraus. - Normalisierung: Der zurückgegebene String kann sich vom Eingabewert unterscheiden. Sonderzeichen werden zum Beispiel prozentkodiert oder Escapes vereinheitlicht. Vergleiche deshalb nicht einfach mit dem ursprünglichen Eingabe-String.
- Sicherheit: Zugangsdaten in URLs (
user:pass@host) sind veraltet. Sie landen leicht in Logs, im Verlauf und imReferer-Header. Moderne Browser blockieren sie beifetch()teilweise. Verwende Passwortmuster höchstens zum Erkennen oder Ablehnen solcher URLs, nicht zur Authentifizierung. - Kompatibilität:
URLPatterngibt es in Chromium seit Version 95. In Firefox (142) und Safari (26) ist es erst seit 2025 verfügbar. Für ältere Browser gibt es das Polyfillurlpattern-polyfill. In Node.js ist es ab 23.8 verfügbar, global ab v24.