Regex url qui laisse passer un double http

Adamsong -  
 Utilisateur anonyme -
bonjour,
voici mon problème. je ne suis pas un spécialiste des regex et j'ai trouvé celle-ci pour une validation d'url dans un formulaire:


/((http:\/\/|https:\/\/)(www.)(([a-zA-Z0-9-]){2,}\.){1,4}([a-zA-Z]){2,6}(\/([a-zA-Z-_\/\.0-9#:?=&;,]*)?)?)/

mon problème est que cette regex laisse passée des adresses du type:

"http://http://www.trucmuch.com"

comment puis-je modifier celle-ci pour ne pas avoir ce type de problème

Merci d'avance.

1 réponse

  1. Utilisateur anonyme
     
    Django utilise cela pour la validation des URL. À tester!

    regex = re.compile(
            r'^(?:[a-z0-9\.\-]*)://' # scheme is validated separately
            r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' # domain...
            r'localhost|' # localhost...
            r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|' # ...or ipv4
            r'\[?[A-F0-9]*:[A-F0-9:]+\]?)' # ...or ipv6
            r'(?::\d+)?' # optional port
            r'(?:/?|[/?]\S+)$', re.IGNORECASE)
    0