"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso usar expressões regulares para detectar URLs, incluindo URLs nus?

Como posso usar expressões regulares para detectar URLs, incluindo URLs nus?

Publicado em 2024-12-20
Navegar:612

How Can I Use Regular Expressions to Detect URLs, Including Naked URLs?

Detectando URLs com expressões regulares

Seu código atual não corresponde a URLs simples, que não possuem o prefixo "http://". Para resolver isso, considere adotar uma expressão regular abrangente:

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)

Essa expressão aprimorada inclui os seguintes recursos:

  • Ela garante que os URLs comecem com "http://", " https://", ou nada.
  • Ele permite subdomínios incluindo "(www.)" como um prefixo opcional.
  • Ele suporta nomes de domínio de até 256 caracteres de comprimento e topo -nível domínios com até 6 caracteres.

Para aqueles que não necessitam do protocolo HTTP em suas partidas, uma expressão alternativa está disponível:

[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)

Para demonstrar a funcionalidade dessas expressões, confira as ferramentas de teste on-line em http://regexr.com?37i6s (para a primeira expressão) ou http ://regexr.com/3e6m0 (para a expressão menos restritiva).

Aqui está um exemplo de implementação de JavaScript usando a expressão regular mais abrangente:

const expression = /[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)/gi;
const regex = new RegExp(expression);
const t = 'www.google.com';

if (t.match(regex)) {
  alert("Successful match");
} else {
  alert("No match");
}
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3