https://code.djangoproject.com/ticket/30924#ticket
The current regex in ​URLValidator does not allow numbers in the top-level
domain
e.g. www.example.org33 raises a ValidationError
Rarely, if ever, do public top-level domains contain a number, however
internal, private networks can certainly be configured with numbers present
in the top-level domain. Thus it is important to handle these URIs without
having to specify custom regex patterns to pass into the URLValidator.
The change can be achieved by replacing the following line in the
URLValidator class:
r'(?:[a-z' + ul + '-]{2,63}'
with
r'(?:[a-z' + ul + r'0-9' + '-]{2,63}'
I think the same rationale for allowing dashes in the top level domain (
https://code.djangoproject.com/ticket/25452#comment:2) can be argued for
this case
To note, the above line change would allow for addresses like
http://1.1.1.1.1
http://123.123.123
to pass, which are currently in invalid_urls.txt
<https://github.com/django/django/blob/f57e174fa61e4c31213f6d0033fb9d647b463626/tests/validators/invalid_urls.txt#L45>
I am hoping this post generates some meaningful discussion around this
proposed design change, thanks!
--
You received this message because you are subscribed to the Google Groups
"Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-developers/b622e51b-3854-493f-b2f6-cd143157b8c2%40googlegroups.com.