PDA

Просмотр полной версии : [Function] IsValidEmail - Проверка Email на валидность



Saibot
23.08.2020, 15:52
Много кто использует регулярное выражение для проверки Email адреса на валидность.
Например я, ни хотел бы подключать сторонний плагин ради того, чтобы проверить - правильно ли игрок написали Email.
Данная функция, проверят строку на латинские буквы, а также на символ @.
До символа @ - Вы сможете ввести любые числа, латинские буквы, а так-же пробел и точки.
После символа @ - Вы не сможете вводить другие символы, кроме одной точки.​


stock IsValidEmail(const string[])
{
new find_@,
dots_after_@,
num_repeating_points;

new i, c;

while((c = string[i++]) != '\0')
{
switch(c)
{
case 'A'..'Z', 'a'..'z', '-', '_', '0'..'9':
{
num_repeating_points = 0;
continue;
}
case '@':
{
if(find_@ || i == 1) return 0;
find_@ = 1;
}
case '.':
{
if(!find_@)
{
if(num_repeating_points) return 0;
num_repeating_points++;
continue;
}
if(dots_after_@) return 0;
dots_after_@ = 1;
}
default: return 0;
}
}
return 1;
}



Данная функция возвращает:

0 - Если найдены запрещенные символы
1 - Если запрещенные символы не найдены


Пример использования:

if(IsValidEmail(/*строка*/) == 1) print("Нет запрещенных символов");
else print("Найдены запрещенные символы");



Автор: Saibot
Оптимизировал: DeimoS