Exemplo didático
O padrão abaixo aceita http ou https, um domínio simples e caminho opcional.
Regex: ^https?:\/\/[\w.-]+\.[A-Za-z]{2,}(?:\/.*)?$https? explicado
O ? torna o s opcional, então o padrão aceita tanto http quanto https. As barras são escapadas em alguns formatos de Regex porque / também pode delimitar o literal.
Domínios e caminhos reais são mais complexos
Portas, IPv6, parâmetros, fragments, Unicode e regras de hostname tornam uma validação universal longa e difícil de manter.
Em JavaScript, prefira URL para parsing
Quando você precisa interpretar uma URL real, new URL(valor) oferece uma estrutura pronta para protocolo, hostname, pathname e parâmetros. Regex continua útil para buscas e restrições específicas.
Próximo passo: teste de verdade
Use o Playground para experimentar a expressão e depois pratique no jogo com feedback de falsos positivos e falsos negativos.