Como você faria para validar uma URL ? Na verdade, você sabe o que é uma URL ? Então para você que não sabe, URL é a sigla para Uniform Resource Locator e consiste em um endereço de um recurso disponível em uma rede.
A estrutura de uma URL é:
esquema://domínio:porta/caminho/recurso?querystring#fragmento
Agora que você já sabe o que é uma URL, voltamos à primeira pergunta: Como você faria para validar uma URL ?
Para responder à essa pergunta, você pode adotar duas abordagens. A primeira é: construir funções gigantescas e a segunda: construir uma regex.
A validação a qual, estou abordando, é de estrutura. Não há nenhuma questão semântica (de significado) por trás. Então, mãos à massa.
Em primeiro lugar, é importante ressaltar que eu não criei esta regex. Peguei ela do livro abaixo.
Este livro não é caro e é muito bom. Recomendo à todos.
Realizei algumas modificações e melhorias na regex. Pus ela para aceitar URLs de ftp e aceitar endereços que comecem sem o esquema. Segue abaixo.
((https?:\/\/)|(ftp:\/\/)|(^))([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+([a-zA-Z]{2,9})(:\d{1,4})?([-\w\/#~:.?+=&%@~]*)
Vamos aplicar a regex no nosso código.
function validarURL(url){
if(/((https?:\/\/)|(ftp:\/\/)|(^))([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+([a-zA-Z]{2,9})(:\d{1,4})?([-\w\/#~:.?+=&%@~]*)/.test(url)){
alert('Formato correto !');
} else {
alert('Formato incorreto !');
}
}
Pronto !! Em poucas linhas já possuímos algo funcional. A função acima foi escrita em Javascript.
Dicas ? Sugestões ? Críticas ? Deixe aí nos comentários.
Referência:
http://pt.wikipedia.org/wiki/URL
Nenhum comentário:
Postar um comentário