URLPattern
A interface URLPattern do Azion Runtime: o construtor, as propriedades e os métodos que comparam uma URL com um padrão.
A interface URLPattern do Azion Runtime compara uma URL, ou partes de uma URL, com um padrão. Um padrão pode conter grupos de captura que extraem partes da URL correspondente, como o ID em um path. Para mais informações, consulte URLPattern no MDN Web Docs.
Construtor
URLPattern() retorna um objeto URLPattern criado a partir do padrão e da URL base que você informa:
| Parâmetro | Tipo | Descrição |
|---|---|---|
input | Object ou string | O padrão. Um objeto recebe um padrão por componente da URL, como { pathname: '/users/:id' }. Uma string recebe o padrão como uma string de URL, como /books/:isbn, resolvida em relação a baseURL. |
baseURL | String | URL base para uma string de padrão relativa, como https://example.com. |
Com uma URL base, os componentes que a string omite vêm da URL base: new URLPattern('/books/:isbn', 'https://example.com') tem o protocol https, o hostname example.com e o pathname /books/:isbn.
Um padrão aceita grupos nomeados como :id, curingas (*), partes opcionais entre chaves como http{s}? e uma expressão regular após o nome de um grupo, como :name(\d+).
Propriedades
Cada propriedade de componente retorna o padrão desse componente, como você o informou. Um componente que você define como string vazia, como port, retorna uma string vazia.
| Propriedade | Tipo | Descrição |
|---|---|---|
hash | String | Padrão que corresponde à parte hash de uma URL. |
hostname | String | Padrão que corresponde à parte hostname de uma URL, como {*.}?example.com. |
password | String | Padrão que corresponde à parte password de uma URL. |
pathname | String | Padrão que corresponde à parte pathname de uma URL, como /api/*. |
port | String | Padrão que corresponde à parte port de uma URL. |
protocol | String | Padrão que corresponde à parte protocol de uma URL, como http{s}?. |
search | String | Padrão que corresponde à parte search de uma URL, como q=:q. |
username | String | Padrão que corresponde à parte username de uma URL. |
hasRegExpGroups | Boolean | true para um padrão que contém um grupo de expressão regular, como /a/(\d+). |
Métodos
| Método | Descrição |
|---|---|
pattern.exec(input) | Retorna um objeto com as partes correspondentes da URL, ou null quando a URL não corresponde. Cada componente do resultado, como pathname, carrega os valores capturados em groups. |
pattern.test(input) | Retorna true quando a URL corresponde ao padrão e false quando não corresponde. |
Os dois métodos recebem uma string de URL. exec() também recebe um objeto de componentes da URL: para o padrão { pathname: '/files/:name(\\d+).:ext' }, exec({ pathname: '/files/12.png' }) retorna os grupos de pathname { name: '12', ext: 'png' }.
Exemplo
Este handler compara duas URLs com um padrão de pathname que tem um grupo nomeado e retorna os resultados de test() e exec() com Response.json():
A function retorna estes valores. O grupo id captura 42, e exec() retorna null para a URL que não corresponde: