URLPattern fait correspondre des URL complètes ou des composants d’URL
individuels.
const users = new URLPattern({ pathname: "/users/:id" });
users.test({ pathname: "/users/42" }); // true
users.exec({ pathname: "/users/42" }).pathname.groups.id; // "42"La construction accepte une chaîne de motif accompagnée d’une URL de base
facultative, ou un dictionnaire avec protocol, username, password,
hostname, port, pathname, search, hash et baseURL. L’option
ignoreCase applique une correspondance insensible à la casse.
Syntaxe des motifs
| Syntaxe | Signification |
|---|---|
:name | Capture nommée d’un segment. |
:name(regex) | Expression régulière personnalisée nommée. |
(regex) | Expression régulière personnalisée anonyme. |
* | Joker complet. |
{...} | Groupe. |
?, +, * | Modificateur facultatif ou de répétition. |
\x | Littéral échappé. |
const api = new URLPattern("https://*.example.com/api/:resource");
api.exec("https://v2.example.com/api/widgets")
.pathname.groups.resource; // "widgets"
const numeric = new URLPattern({ pathname: "/items/:id(\\d+)" });
numeric.test({ pathname: "/items/123" }); // true
const relative = new URLPattern("/items/:id", "https://example.com/");
relative.test("https://example.com/items/7"); // truetest() renvoie un booléen. exec() renvoie null ou un résultat contenant,
pour chaque composant, l’entrée et les groupes de capture. Des attributs de
composants en lecture seule exposent le motif compilé, et hasRegExpGroups
indique la présence de groupes d’expressions régulières explicites.
Reference
Status: Full · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
URLPattern | class | Full | protocol, username, password, hostname, port, pathname, search, hash, hasRegExpGroups, test(), exec() |