URLPattern: URLPattern()-Konstruktor
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Der URLPattern()
-Konstruktor gibt ein neues URLPattern
Objekt zurück, das das durch die Parameter definierte URL-Muster repräsentiert.
Syntax
new URLPattern(input)
new URLPattern(input, baseURL)
new URLPattern(input, options)
new URLPattern(input, baseURL, options)
Parameter
input
-
Das Eingabemuster, das zur Übereinstimmung verwendet wird. Dies kann entweder eine Zeichenkette oder ein Objekt sein, das Muster für jeden URL-Teil einzeln bereitstellt. Die Objektmitglieder können Folgendes sein:
-
protocol
-
username
-
password
-
hostname
-
port
-
pathname
-
search
-
hash
-
baseURL
Hinweis: Ausgelassene Teile des Objekts werden als Platzhalter (
*
) behandelt. -
baseURL
Optional-
Eine Zeichenkette, die die Basis-URL darstellt, die verwendet wird, wenn
input
ein relatives Muster ist. Falls nicht angegeben, wird es alsundefined
behandelt. options
Optional-
Ein Objekt, das Optionen für die Übereinstimmung mit dem angegebenen Muster bereitstellt. Mögliche Objektmitglieder sind:
ignoreCase
Optional-
Ermöglicht die Groß-/Kleinschreibung-ignorierende Übereinstimmung, wenn auf
true
gesetzt. Wenn weggelassen oder auffalse
gesetzt, ist die Übereinstimmung groß-/kleinschreibungssensitiv.
Ausnahmen
TypeError
-
Gibt eines der folgenden Probleme an:
- Das gegebene
input
oderbaseURL
ist nicht gültig oder syntaktisch korrekt. - Das gegebene
input
ist relativ, aber es wird keinbaseURL
bereitgestellt, um eine vollständige absolute URL zu bilden. - Ein
baseURL
wird bereitgestellt undinput
ist ein absolutes Muster oder ein strukturiertes Objekt.
- Das gegebene
Beispiele
Übereinstimmen eines Pfadnamens
let pattern1 = new URLPattern("https://example.com/books/:id");
// same as
let pattern2 = new URLPattern("/books/:id", "https://example.com");
// or
let pattern3 = new URLPattern({
protocol: "https",
hostname: "example.com",
pathname: "/books/:id",
});
// or
let pattern4 = new URLPattern({
pathname: "/books/:id",
baseURL: "https://example.com",
});
Protokoll und Hostname übereinstimmen
let pattern = new URLPattern({
protocol: "http{s}?",
hostname: ":subdomain.example.com",
});
Alle möglichen strukturierten Teile übereinstimmen
let pattern = new URLPattern({
protocol: "http{s}?",
username: ":username",
password: ":password",
hostname: ":subdomain.example.com",
port: ":port(80|443)",
pathname: "/:path",
search: "*",
hash: "*",
});
Groß-/Kleinschreibungsunabhängige Übereinstimmung
// Case-sensitive matching by default
const pattern = new URLPattern("https://example.com/2022/feb/*");
console.log(pattern.test("https://example.com/2022/feb/xc44rsz")); // true
console.log(pattern.test("https://example.com/2022/Feb/xc44rsz")); // false
Das Setzen der ignoreCase
-Option auf true
im Konstruktor schaltet alle Übereinstimmungsoperationen auf groß-/kleinschreibungsunabhängig für das gegebene Muster um:
// Case-insensitive matching
const pattern = new URLPattern("https://example.com/2022/feb/*", {
ignoreCase: true,
});
console.log(pattern.test("https://example.com/2022/feb/xc44rsz")); // true
console.log(pattern.test("https://example.com/2022/Feb/xc44rsz")); // true
Verwendungshinweise
Das Eingabemuster des URLPattern
-Konstruktors kann zwei Formen annehmen — ein
Musterobjekt oder ein Musterzeichenkette und optionales baseURL
.
new URLPattern(obj);
new URLPattern(pattern);
new URLPattern(pattern, baseURL);
Der erste Konstruktionstyp nimmt ein Objekt an, das beschreibt,
welche URLs durch die Angabe von Mustern für jeden einzelnen URL-Teil übereinstimmen sollten.
Seine Mitglieder können protocol
, username
, password
, hostname
,
port
, pathname
, search
, hash
oder baseURL
sein. Falls die baseURL
-Eigenschaft
angegeben ist, wird sie als URL geparst und verwendet, um alle anderen fehlenden Eigenschaften
zu füllen. Fehlt die baseURL
-Eigenschaft, dann werden alle anderen fehlenden
Eigenschaften standardmäßig mit dem Muster-*
-Platzhalter versehen und akzeptieren jede Eingabe.
Der zweite Konstruktionstyp akzeptiert eine URL-Zeichenkette, die
Muster eingebettet enthält. Die URL-Zeichenkette kann relativ sein, wenn ein baseURL
als
zweites Argument bereitgestellt wird. Beachten Sie, dass es notwendig sein könnte, einige
Zeichen in der URL-Zeichenkette zu maskieren, falls unklar ist, ob das Zeichen
verschiedene URL-Komponenten trennt oder Teil eines Musters ist. Zum
Beispiel müssen Sie about\\:blank
schreiben, um anzuzeigen, dass das :
das Protokollsuffix ist und nicht der Beginn eines :blank
genannten Gruppenmusters.
Spezifikationen
Specification |
---|
URL Pattern Standard # dom-urlpattern-urlpattern |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
-
Ein Polyfill von
URLPattern
ist auf GitHub verfügbar