Много кто использует регулярное выражение для проверки Email адреса на валидность.
Например, я ни хотел бы подключать сторонний плагин, ради того, что бы проверить - правильно ли игрок написали Email.
Данная функция, проверят строку на латинские буквы, а также на символ @.
До символа @ - Вы сможете ввести любые числа, латинские буквы, а также пробел и точки.
После символа @ - Вы не сможете вводить другие символы, кроме двух точек.
Например, я ни хотел бы подключать сторонний плагин, ради того, что бы проверить - правильно ли игрок написали Email.
Данная функция, проверят строку на латинские буквы, а также на символ @.
До символа @ - Вы сможете ввести любые числа, латинские буквы, а также пробел и точки.
После символа @ - Вы не сможете вводить другие символы, кроме двух точек.
PHP:
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(i == 1) return 0;
find_@ ++;
}
case '.':
{
if(!find_@)
{
if(num_repeating_points) return 0;
num_repeating_points++;
continue;
}
if(++ dots_after_@ > 2) return 0;
}
default: return 0;
}
}
if(find_@ != 1 || dots_after_@ == 0) return 0;
return 1;
}
0 | Если найдены запрещенные символы |
1 | Если запрещенные символы не найдены |
Тест скорости:
IsValidEmail | 90 (ms) |
Regex_Check | 275 (ms) |
Пример использования:
PHP:
if(IsValidEmail(/*строка*/) == 1) print("Нет запрещенных символов");
else print("Найдены запрещенные символы");
Автор: Saibot
Оптимизировал: DeimoS
Последнее редактирование: