- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
bool IsEmailValid(string email)
{
if (email == "")
return false;
if (!sEmail.Contains("@") || !sEmail.Contains("."))
return false;
return true;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−15
bool IsEmailValid(string email)
{
if (email == "")
return false;
if (!sEmail.Contains("@") || !sEmail.Contains("."))
return false;
return true;
}
И так сойдет! (с)
bool Valid {get;}
}
interface IUser : IValidatable {
string Username {get;}
}
interface IDomain :IValidatable {
Uri Uri {get;}
}
interface IEmail : IValidatable {
IUser User {get;}
IDomain Domain {get;}
}
guest, видимо, не о сайте, где юзеры сами регаются, а о софтинах, где емейл вбивают в какую-нибудь формочку.
1. Доменная часть закодирована в Punycode (xn--что-то-там). Тогда проверяем, можно ли такую строку раскодировать.
2. Доменная часть не закодирована. В этом случае она может содержать чуть ли не любые юникодные символы (список разрешённых символов зависит от политики домена предыдущего уровня). Т. е. проверять толком нечего.
Есть ли символы, которые принципиально запрещены для доменов?
*****
А часть, которая до @, мы и проверить не можем, ибо она является «locally interpreted string», т. е. может содержать почти любые символы.