Как сделать проверку идентификатора электронной почты в MFC? - PullRequest
2 голосов
/ 09 мая 2011

Я использовал этот код для проверки идентификатора электронной почты, я получаю несколько ошибок, я не знаю, как его решить ,,, я новичок в MFC, если я глупый, пожалуйста, прости меня

BOOL CMailDlg::Validate(CString m_sFrom)
{
  m_sFrom  = NulltoString(m_sFrom);
  CString strRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  

  Regex re = new Regex(strRegex);
  if (re.IsMatch(m_sFrom))
    return (true);
  else
    return (false);
}

Ошибки:

ошибка C2511: «Проверить»: перегруженная функция-член «int (class CString)» не найдена в «CMailDlg»

см. Объявление «CMailDlg»

ошибка C2059: синтаксическая ошибка: «неправильный суффикс номера»

ошибка C2018: неизвестный символ «0x40»

ошибка C2017: недопустимая escape-последовательность

1 Ответ

1 голос
/ 09 мая 2011

Вам нужно будет включить строку регулярного выражения в кавычки и экранировать \. C ++ не имеет встроенной поддержки регулярных выражений, как вы можете найти, скажем, Perl, он реализован с использованием строки. \ является escape-символом C ++ и используется для включения в строки таких вещей, как новые строки, поэтому если вы хотите, чтобы в вашей строке был фактический \, вы должны удвоить его.

CString strRegex = "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/";
...