mirror of
https://github.com/django/django.git
synced 2025-10-25 22:56:12 +00:00
Fixed #26204 -- Reallowed dashes in top-level domains for URLValidator.
Thanks Shai Berger for the review.
This commit is contained in:
@@ -86,7 +86,14 @@ class URLValidator(RegexValidator):
|
||||
hostname_re = r'[a-z' + ul + r'0-9](?:[a-z' + ul + r'0-9-]{0,61}[a-z' + ul + r'0-9])?'
|
||||
# Max length for domain name labels is 63 characters per RFC 1034 sec. 3.1
|
||||
domain_re = r'(?:\.(?!-)[a-z' + ul + r'0-9-]{1,63}(?<!-))*'
|
||||
tld_re = r'\.(?:[a-z' + ul + r']{2,63}|xn--[a-z0-9]{1,59})\.?'
|
||||
tld_re = (
|
||||
'\.' # dot
|
||||
'(?!-)' # can't start with a dash
|
||||
'(?:[a-z' + ul + '-]{2,63}' # domain label
|
||||
'|xn--[a-z0-9]{1,59})' # or punycode label
|
||||
'(?<!-)' # can't end with a dash
|
||||
'\.?' # may have a trailing dot
|
||||
)
|
||||
host_re = '(' + hostname_re + domain_re + tld_re + '|localhost)'
|
||||
|
||||
regex = _lazy_re_compile(
|
||||
|
||||
Reference in New Issue
Block a user