Тема: kill lainocode: Валідація текстового поля
Прів. Є поле для введення email, і потрібно фільтрувати символи, що вводяться в нього.
The format of email addresses is local-part@domain where the local-part may be up to 64 сharacters long and the domain name may have a maximum of 128 characters. The local-part of the email address may use any of these ASCII characters: Latin Letters; Digits 0 to 9;
Special Characters like !#$%&'*+-/=?^_`{|}~@.
Тобто, поле може містити лише латинські літери, і їх потрібно переводити в верхній регістр, якщо вони в нижньому.
Також мона вводити оті спеціальні символи і циферки. При цьому ми можемо ввести лише одного равлика, і частина емейлу до равлика може містити максимально 64 символи, а після равлика - 128 символів.
Озьдо мій лайнокід
private char MyValidate(string input, int charIndex, char charToValidate)
{
if ((charToValidate >= 'a' && charToValidate <= 'z') ||
(charToValidate >= 'A' && charToValidate <= 'Z') ||
charToValidate=='@' ||
(charToValidate >= '0' && charToValidate <= '9') ||
"!#$%&'*+-/=?^_`{|}~@.".Contains(charToValidate.ToString()))
{
if ((charToValidate == '@' && input.Contains("@")) ||
(!input.Contains("@") && charIndex>=63) ||
(input.Contains("@") && charIndex >= 192))
return '\0';
}
else return '\0';
return char.ToUpper(charToValidate);
}
input - весь рядок з символами
charIndex - індекс символу
charToValidate - тільки що введений символ
Наскільки він поганий за 100-бальною шкалою? І що з ним не так?