Regex url qui laisse passer un double http
Adamsong
-
Utilisateur anonyme -
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:
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.
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
-
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)