私はちょうどテキストボックスを使用してユーザーの入力を検証しようとしています。しかし、一度に1つの文字を入力することしかできません。彼らは完全な電子メールアドレスを入力するまで、一度に1つの文字をチェックする方法はわかりません。 Regex、電子メールの妥当性確認をテキストボックスから受け取ります
は、私は、これはそれがコピーしてペーストされるまでの障害になります文字が入力されるごとに、時間をチェックしていると思います。 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 'var email = new MailAddress(string_to_check)'の代わりにユーザ名とドメイン名に 'MailAddress'を使うのが望ましいですが、TLDチェックを追加することもできます(TLDに特定の正規表現を使用する)。 –
ありがとう、しかし、私は自分の関数にこれを実装する方法は? – whatdoyouNeedFromMe
'try'ブロックの' MailAddress'インスタンスへの引数として有効な文字列を渡すregexを使ってTLDの部分をチェックした後に実装できると思います。無効な電子メールの場合は、 'catch'ブロックを使用して' MessageBox.Show'で無効な電子メールメッセージをスローします。 –