Мы следовали регулярному выражению для проверки стандарта RFC 2822.
Функция выглядит следующим образом:
int isValidEmail(const char *email_id)
{
/* Regular expression to validate email */
const char *reg_exp =
"[a-z0-9!#$%&'*+-/=?^_`{|}~]+(\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]([a-z0-9-]*[a-z0-9])?$";
regex_t preg;
/* Compile the regular expression */
if (regcomp(&preg, reg_exp, REG_EXTENDED|REG_NOSUB|REG_ICASE) != 0)
return FAILURE;
/* Execute the regex, 0 for success */
if (regexec(&preg, email_id, (size_t)0, NULL, 0) != 0)
return FAILURE;
regfree(&preg);
return SUCCESS;
}
Но если я предоставлю электронные письма типа "test @ test @ test.com", письма принимаются.
Есть ли проблемы с этим регулярным выражением?
Заранее благодарны за помощь.
Спасибо, Мэтью Лицзу