2015-04-20 4 views
0

Я пытаюсь передать адрес электронной почты в качестве параметра в URL-адрес django. Я хочу передать электронную почту, а также обычную строку и номер также в URL как аргументы.Прохождение электронной почты как регулярное выражение в django url

url(r"search_connections/(?P<data>[\w.%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4})/$", "search_connections", name="search_connections"), 

Он корректно работает с электронной почтой в качестве параметра. Но для нормальной строки, такой как «abc», она не работает:

working for "/search_connections/[email protected]/" 
not working for "/search_connections/abc/" 

Я хочу, чтобы этот URL-адрес работал для обоих.

+0

'@' не допускается на пути к URL-адресу, и многие клиенты рассматривают все между ': //' и '@' именем пользователя. –

ответ

0

Вы можете попробовать просто использовать | (или) с \w+:

r'search_connections/(?P<data>\w+|[\w.%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4})/$' 

Однако я думаю, что регулярное выражение для электронной почты просто не надежное решение, чтобы соответствовать все допустимые сообщения электронной почты.

+0

\ w + скомпрометировали назначение регулярного выражения электронной почты – Paullo

Смежные вопросы