Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Regex,从文本框中获取用户输入的电子邮件验证_C#_Regex_Winforms_Email - Fatal编程技术网

C# Regex,从文本框中获取用户输入的电子邮件验证

C# Regex,从文本框中获取用户输入的电子邮件验证,c#,regex,winforms,email,C#,Regex,Winforms,Email,我只是想用一个文本框来验证用户的输入,我认为这种验证是有效的。但是,它只允许我一次键入一个字符。在他们输入完整的电子邮件地址之前,我不知道如何一次检查一个字符 我认为这是每次输入字符时都要进行检查,这将导致失败,直到复制并粘贴为止 string strRegex = @"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))

我只是想用一个文本框来验证用户的输入,我认为这种验证是有效的。但是,它只允许我一次键入一个字符。在他们输入完整的电子邮件地址之前,我不知道如何一次检查一个字符

我认为这是每次输入字符时都要进行检查,这将导致失败,直到复制并粘贴为止

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



        }

    }

string stregex=@“^(?“”(“”)+?(?可能是您正在对keyup、keydown事件进行验证。对更改事件进行验证


如果您在winform应用程序中执行此操作,则可以在focusleave事件上执行此操作。可能是在keyup、keydown事件上进行验证。在更改事件上进行验证


如果您在winform应用程序中执行此操作,您可以在focusleave事件上执行此操作。这是我目前所知道的,但我不确定这是否是您的意思

        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)
        {
            try
            {
                var email = new MailAddress(strRegex);
                MessageBox.Show("Thanks");
            }
            catch (FormatException)
            {
                MessageBox.Show("Wrong");


            }

string stregex=@“^(?(“”)(“)+?(?@Tetsuya Yamamoto)这是我到目前为止所知道的,但我不确定这是否是你的意思

        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)
        {
            try
            {
                var email = new MailAddress(strRegex);
                MessageBox.Show("Thanks");
            }
            catch (FormatException)
            {
                MessageBox.Show("Wrong");


            }

string stregex=@“^(?“”(““”)+?(?我更倾向于使用
MailAddress
作为用户名和域名:
var email=newmailaddress(string\u to\u check)
,但您可能也希望添加TLD检查(使用特定的正则表达式作为TLD)。谢谢,但我如何将其实现到我自己的函数中?我想您可以在使用正则表达式检查TLD部分后实现它,正则表达式将有效字符串作为参数传递到
try
block中的
MailAddress
实例。如果是无效电子邮件,请使用
catch
block将无效电子邮件与
MessageBox一起抛出。Show
。那么,验证之后是if语句?还是之前?我更倾向于使用
maildAddress
作为用户名和域名:
var email=new maildAddress(string\u to\u check)
,但您可能也希望添加TLD检查(使用特定的正则表达式作为TLD)。谢谢,但我如何将其实现到我自己的函数中?我想您可以在使用正则表达式检查TLD部分后实现它,正则表达式将有效字符串作为参数传递到
try
block中的
MailAddress
实例。如果是无效电子邮件,请使用
catch
block将无效电子邮件与
MessageBox一起抛出。Show
那么,验证之后是if语句?还是之前?