URLPattern compara URL completas o componentes individuales de una URL.
const users = new URLPattern({ pathname: "/users/:id" });
users.test({ pathname: "/users/42" }); // true
users.exec({ pathname: "/users/42" }).pathname.groups.id; // "42"La construcción acepta una cadena de patrón más una URL base opcional, o un diccionario
con protocol, username, password, hostname, port,
pathname, search, hash y baseURL. La opción
ignoreCase aplica una coincidencia que no distingue mayúsculas y minúsculas.
Sintaxis de patrones
| Sintaxis | Significado |
|---|---|
:name | Captura de segmento con nombre. |
:name(regex) | Expresión regular personalizada con nombre. |
(regex) | Expresión regular personalizada sin nombre. |
* | Comodín completo. |
{...} | Grupo. |
?, +, * | Modificador opcional o de repetición. |
\x | Literal escapado. |
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() devuelve un booleano. exec() devuelve null o un resultado con la entrada y los
grupos de captura de cada componente. Los atributos de componente de solo lectura exponen
el patrón compilado, y hasRegExpGroups identifica los grupos de expresiones regulares explícitos.
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() |