A análise de URLs no lado do cliente tem sido uma prática comum há duas décadas. Os primeiros dias incluíam o uso de expressões regulares ilegíveis, mas a especificação do JavaScript acabou evoluindo para um new URL
método de análise de URLs. Embora URL
é incrivelmente útil quando um URL válido é fornecido, uma string inválida gera um erro – eca! Um novo método, URL.canParse
, estará disponível em breve para validar URLs!
O fornecimento de um URL malformado ao new URL
gerará um erro, portanto, todo uso de new URL
precisaria estar dentro de um try/catch
bloco:
// The correct, safest way try { const url = new URL('https://davidwalsh.name/pornhub-interview'); } catch (e) { console.log("Bad URL provided!"); } // Oops, these are problematic (mostly relative URLs) new URL('/'); new URL('../'); new URL('/pornhub-interview'); new URL('?q=search+term'); new URL('davidwalsh.name'); // Also works new URL('javascript:;');
Como o senhor pode ver, as cadeias de caracteres que funcionariam corretamente com um <a>
às vezes não funcionam com a tag new URL
. Com URL.canParse
, o senhor pode evitar o try/catch
para determinar a validade do URL:
// Detect problematic URLs URL.canParse('/'); // false URL.canParse('/pornhub-interview'); // false URL.canParse('davidwalsh.name'); //false // Proper usage if (URL.canParse('https://davidwalsh.name/pornhub-interview')) { const parsed = new URL('https://davidwalsh.name/pornhub-interview'); }
Percorremos um longo caminho desde os regexes crípticos e o queimador <a>
para este URL
e URL.canParse
APIs. Atualmente, os URLs representam muito mais do que a localização, portanto, ter uma API confiável ajudou muito os desenvolvedores da Web!
39 Shirts – Deixando a Mozilla
Em 2001, eu tinha acabado de me formar em uma escola de ensino médio de uma cidade pequena e estava indo para uma faculdade de uma cidade pequena. Encontrei-me no pitoresco laboratório de informática, onde os computadores de baixa qualidade apresentavam dois navegadores: Internet Explorer e Mozilla. Foi nesse laboratório que me apaixonei…
5 APIs HTML5 que o senhor não sabia que existiam
Quando se diz ou se lê “HTML5”, é de se esperar que dançarinas exóticas e unicórnios entrem na sala ao som de “I’m Sexy and I Know It”. Mas o senhor pode nos culpar? Assistimos à estagnação das APIs fundamentais por tanto tempo que um recurso básico…
Sombras de caixa CSS entre navegadores
As sombras de caixa são usadas na Web há um bom tempo, mas não foram criadas com CSS: era necessário utilizar algum jogo do Photoshop para criá-las. Para alguém sem nenhum talento em design, ou seja, eu, a necessidade de usar o Photoshop era péssima. Só porque…
QuickBoxes para Dojo
É importante para mim aumentar meu portfólio mental. Primeiro veio o MooTools, depois o jQuery e agora o Dojo. Converso frequentemente com Peter Higgins, famoso pelo Dojo, e decidi que era hora de entrar em seu mundo. Escolhi um plug-in simples, mas útil…