Ich versuche nur eine Benutzereingabe mithilfe eines Textfelds zu validieren, die Validierung funktioniert, denke ich. Es erlaubt mir jedoch nur ein Zeichen gleichzeitig einzugeben. Ich bin mir nicht sicher, wie man einen Char auf einmal überprüft, bis er eine vollständige E-Mail-Adresse eingegeben hat.Regex, E-Mail-Validierung unter Eingabe von Benutzereingaben aus Textfeld
Ich denke, das jede Zeit prüft, wenn ein Zeichen eingegeben wird, die zu einem Ausfall führen wird, bis sie kopiert und eingefügt in ist.
string strRegex = @"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
@"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$";
Regex re = new Regex(strRegex);
if (re.IsMatch(txtEmail.Text) || txtEmail.Text == "" || txtEmail.Text.Length > 100 && txtEmail.Text.Length < 10)
{
MessageBox.Show("Thanks");
}
else
{
MessageBox.Show("Please enter a valid email address");
}
}
I Es wird jedoch bevorzugt, 'MailAddress' für den Benutzernamen und den Domainnamen zu verwenden:' var email = new MailAddress (string_to_check) ', aber Sie können auch TLD-Check hinzufügen (verwenden Sie einen spezifischen Regex für TLD). –
danke, aber wie würde ich dies zu meiner eigenen Funktion implementieren? – whatdoyouNeedFromMe
Ich denke, Sie können es implementieren, nachdem Sie den TLD-Teil mit regex überprüft haben, der die gültige Zeichenfolge als Argument an die 'MailAddress'-Instanz im' try'-Block übergibt. Wenn es sich um eine ungültige E-Mail handelt, verwenden Sie den 'catch'-Block, um eine ungültige E-Mail-Nachricht mit' MessageBox.Show' zu werfen. –