logo

Como obter o nome de domínio do URL em JavaScript

O que é um URL?

A URL é outro nome para um endereço da web . Por exemplo, um URL baseado em palavras é Javatpoint.com. A URL também pode ser criado usando um endereço IP (ex. 192.168.2.24 ). A maioria dos consumidores fornece o endereço do nome ao realizar uma pesquisa online porque os nomes são mais fáceis de lembrar do que os números.

Os navegadores da Web usam URLs para solicitar páginas específicas aos servidores da web. Abaixo está uma lista de um Sintaxe da URL e formatar .

Sintaxe

 Scheme://prefix.domain:port/path/filename 

Parâmetros

Esquema-

O tipo de serviço de Internet é especificado (http ou https está sendo usado em geral).

Prefixo-

Estabelece um prefixo de domínio (www é o padrão para http).

Domínio-

Discute o nome de domínio na internet (ex. javatpoint.com ).

js onclick

Porto -

Ele identifica a porta no host ( 80 é o padrão para http).

Caminho -

Ele cria um caminho no lado do servidor.

Nome do arquivo -

Ele identifica o nome de um recurso ou documento.

Obtendo o nome de domínio de um URL em javascript pode ser uma tarefa útil por vários motivos, como extrair o nome de domínio para análise da web ou para fins de segurança. Nesta resposta, exploraremos diferentes maneiras de extrair o nome de domínio de uma URL em javascript, juntamente com seus prós e contras.

1. Usando o objeto window.location

A maneira mais direta de obter o nome de domínio de uma URL em javascript é usar o objeto window.location , que fornece informações sobre o URL atual. O janela.localização.host propriedade nos fornece o nome de domínio, incluindo o número da porta, se estiver presente. Aqui está um exemplo:

 Const domain = window.location.host; 

Esta abordagem tem a vantagem de ser simples e confiável. No entanto, isso só funciona para o URL atual; portanto, se precisar extrair o nome de domínio de um URL diferente, você precisará usar um método diferente.

2. Usando o construtor de URL

Outra forma de extrair o nome de domínio de uma URL em javascript é usar o construtor de URL. É um objeto javascript integrado que pode analisar uma string de URL e fornecer acesso aos seus vários componentes. Aqui está um exemplo:

 Consturl = new URL('https://www.example.com/path/to/file.html'); Const domain = url.hostname; 

O construtor de URL tem a vantagem de poder extrair o nome de domínio de qualquer URL válido, não apenas do atual. No entanto, ele está disponível apenas em navegadores modernos, portanto, você precisará verificar se é compatível antes de usá-lo.

3. Usando expressões regulares

Uma abordagem mais avançada para extrair o nome de domínio de uma URL em javascript é usar expressões regulares. As expressões regulares são uma ferramenta poderosa para correspondência de padrões e podemos usá-las para extrair o nome de domínio de uma URL. Aqui está um exemplo:

 Consturl = 'https://www.example.com/path/to/file.html'; Constdomain = url.match(/^(?:https?://)?(?:[^@
]+@)?(?:www.)?([^:/
]+)/im)[1]; 

Este padrão de expressão regular corresponde ao nome de domínio em uma URL, ignorando o protocolo ( http ou https ), nome de usuário e senha e caminho. Funciona procurando a primeira ocorrência de uma sequência de caracteres que não inclui dois pontos, uma barra ou uma nova linha, precedida por um protocolo opcional, nome de usuário e senha, e opcional 'www.' prefixo. O método match retorna um array contendo toda a correspondência e quaisquer grupos capturados, então precisamos extrair o segundo item (no índice 1) para obter o nome de domínio.

Essa abordagem tem a vantagem de ser flexível e adaptável a diferentes formatos de URL, mas também é mais complexa e propensa a erros se o padrão de expressão regular não for suficientemente preciso.

4. Usando o DOM

Finalmente, também podemos extrair o nome de domínio de uma URL em javascript usando o DOM . Podemos criar um elemento âncora oculto, definir seu atributo href para o URL do qual queremos extrair o nome de domínio e, em seguida, leia a propriedade hostname. Aqui está um exemplo:

 Consturl = 'https://www.example.com/path/to/file.html'; Const a = document.createelement('a'); A.href = url; Const domain = a.hostname; 

Esta abordagem tem a vantagem de ser fácil de compreender e implementar, mas também cria uma Elemento DOM , o que pode ter algumas implicações no desempenho se você precisar fazer isso repetidamente.

Conclusão

Existem diferentes maneiras de extrair o nome de domínio de uma URL em javascript, e a melhor abordagem depende de seus requisitos e restrições. Se você precisar apenas extrair o nome de domínio do URL atual, usando o objeto window.location é o método mais simples e confiável.