如何在MFC中验证电子邮件ID?

时间:2011-05-09 08:19:59

标签: c++ regex mfc email-validation email-address

我使用此代码来验证电子邮件ID,我很少有错误我不知道如何解决它,我是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:'验证':'CMailDlg'中找不到重载的成员函数'int(class CString)'

     

查看'CMailDlg'的声明

     

错误C2059:语法错误:'数字上的错误后缀'

     

错误C2018:未知字符'0x40'

     

错误C2017:非法转义序列

1 个答案:

答案 0 :(得分:1)

您需要在引号中包含正则表达式字符串并转义\。 C ++没有正则表达式的原生支持,你可能会发现它是Perl,它是用字符串实现的。 \是C ++转义字符,用于将新行包含在字符串中,因此如果您想在字符串中使用实际\,则必须将其加倍。

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