Start · Sprachen · JavaScript · Referenz · URLPattern.password

URLPattern.password

Eigenschaft

Liefert als schreibgeschützten String das normalisierte Muster, mit dem ein <code>URLPattern</code> den Passwortteil einer URL prüft.

seit JavaScript Baseline 2025 (Chrome/Edge 95+, Firefox 142+, Safa Kategorie: webapi

Signatur

get URLPattern.prototype.password

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

Typ
string
Beschreibung
Das normalisierte Muster für den Passwortteil. Ohne eigene Angabe ist es "*".

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
geheim-:version *

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"));
* true

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);
token-:key(\d+) token-9876 9876

// Wichtig · Fallstricke

  • Schreibgeschützt: pattern.password = "x" ändert nichts und löst im Strict Mode einen TypeError aus.
  • 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 im Referer-Header. Moderne Browser blockieren sie bei fetch() teilweise. Verwende Passwortmuster höchstens zum Erkennen oder Ablehnen solcher URLs, nicht zur Authentifizierung.
  • Kompatibilität: URLPattern gibt 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 Polyfill urlpattern-polyfill. In Node.js ist es ab 23.8 verfügbar, global ab v24.