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语句?还是之前?