2 Stimmen

Wie validiert man die E-Mail-ID in MFC?

Ich habe diesen Code zur Validierung der E-Mail-ID verwendet, ich bekomme einige Fehler, ich weiß nicht, wie ich sie lösen soll. Ich bin neu in MFC, wenn ich albern bin, verzeihen Sie mir bitte.

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);
}

Fehler:

Fehler C2511: 'Validate' : überladene Elementfunktion 'int (class CString)' in 'CMailDlg' nicht gefunden

Siehe Deklaration von 'CMailDlg'

Fehler C2059: Syntaxfehler : 'bad suffix on number'

Fehler C2018: Unbekanntes Zeichen '0x40'

Fehler C2017: Ungültige Escape-Sequenz

1voto

Charles Keepax Punkte 2362

Sie müssen den Regex-String in Anführungszeichen einfügen und das \ escapen. C++ hat keine nativen Unterstützung für Regex, wie Sie es vielleicht von Perl kennen, sondern wird mit einem String implementiert. \ ist das Escape-Zeichen in C++ und wird verwendet, um Dinge wie Zeilenumbrüche in Strings einzuschließen. Wenn Sie also ein tatsächliches \ in Ihrem String möchten, müssen Sie es verdoppeln.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X