Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 13, 2014 20:46:23

AZJIO
Зарегистрирован: 2014-08-27
Сообщения: 53
Репутация: +  -5  -
Профиль   Отправить e-mail  

как проверить переменную "name" на запрещенные символы?

Упрощённый пример проверки валидности e-mail. Смысл такой: в логине любая буква, цифра, подчёркивание, точка, тире, а в домене тот же набор, плюс оканчивается 2-4 символьным com, ru и т.д. Но тут уж сам определяй диапазоны А-Яа-яЁё и т.д. А \w = _A-Za-z0-9, к ним можно добавить тоже А-Яа-яЁё

#!/usr/bin/python3
#coding: utf-8
import re
pattern = re.compile(r'^[\w.-]+@[\w.-]+\.[A-Za-z]{2,4}$') # мэйл ли?
name = 'ww@mail.ru' # Тест без ввода
# name = 'wwmail.ru' # Тест без ввода
# print(name)
var = pattern.search(name)
# print(var) # Если не найдено то None, если найдено, то объект
if not var:
	print('Ошибка')
if var:
	print('Успех')



_________________________________________
Python_Examples.7z

Офлайн

#2 Сен. 13, 2014 23:51:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

как проверить переменную "name" на запрещенные символы?

AZJIO
и точка в домене была одна.
Alen
Почему точка должна быть одна?!

Он подсознательно имел в виду подряд.

Вообще, на Яндексе висит подобное задание.
yandex. задание
Вопрос 5	

Напишите функцию, которая проверяет введенный пользователем e-mail на соответствие следующим правилам:

1. e-mail состоит из имени и доменной части, эти части разделяются символом "@";

2. доменная часть не короче 3 символов и не длиннее 256, является набором непустых строк, состоящих из символов a-z 0-9_- и разделенных точкой;

3. каждый компонент доменной части не может начинаться или заканчиваться символом "-";

4. имя (до @) не длиннее 128 символов, состоит из символов a-z0-9"._-;

5. в имени не допускаются две точки подряд;

6. если в имени есть двойные кавычки ", то они должны быть парными;

7. в имени могут встречаться символы "!,:", но только между парными двойными кавычками.

Вопрос 6

Напишите юнит-тесты для функции из предыдущего вопроса.

Сначала нужно составить юнит-тесты, потом под них уже писать функцию. Сделать можно разными способами. Новичку, наверное, будет проще разложить сначала на логин и хост, а потом применять отдельные наборы правил к логину и хосту.



Офлайн

#3 Сен. 14, 2014 15:00:34

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

как проверить переменную "name" на запрещенные символы?

py.user.next
Вообще, на Яндексе висит подобное задание.

Спасибо что просветили смысл.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version