我用这段代码来验证电子邮件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(类 CString)"
参见"CMailDlg"的声明
错误C2059:语法错误:"数字后缀错误"
错误 C2018:未知字符"0x40"
错误 C2017:非法转义序列
您需要
在引号中包含正则表达式字符串并转义 \。C++没有对正则表达式的原生支持,你可能会发现Perl,它是使用字符串实现的。\ 是C++转义字符,用于在字符串中包含新行等内容,因此,如果您希望字符串中出现实际的 \,则必须将其加倍。
CString strRegex = "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/";