c# - 如何确保用户在文本框中输入了电子邮件地址?

标签 c# wpf if-statement textbox email-validation

如何确保我的 Web 表单应用程序的用户输入了电子邮件地址?我看过使用正则表达式和 EmailAddress() 的示例,但我如何才能在下面的 if else 语句中实现一个或另一个?

if (emailTextBox.Text == "" || emailTextBox.Text.Length > 100)
{
    emailErrorString = "Email: Enter email address.  No more than 100 characters.\n\n";
    emailString = null;
    errorMessage = true;
}
else
{
    emailString = emailTextBox.Text;
    emailErrorString = null;
}

我尝试了以下代码,即使我输入了无效的电子邮件地址“jj@jj。我没有输入“.com,或,net,或类似的东西:

 if (emailTextBox.Text == "" || emailTextBox.Text.Length > 100 ||                                          
      IsValid(emailTextBox.Text).Equals(false)) 
 {
     emailErrorString = "Email: Enter a valid email address. No more than 100
           characters.\n\n"; emailString = null; errorMessage = true; 
 } 
 else 
 { 
      emailString = emailTextBox.Text; emailErrorString = null; 
 }

最佳答案

您可以使用 MailAddress类,如下所示:

public bool IsValid(string emailAddress)
{
    try
    {
        MailAddress m = new MailAddress(emailaddress);
        return true;
    }
    catch (FormatException)
    {
        return false;
    }
}

或者, 您可以使用 RegEx(您应该能够找到一个适合验证电子邮件地址的)。 此链接给出了可用字符/模式的基本概念:Regexlib

关于c# - 如何确保用户在文本框中输入了电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22180658/

相关文章:

WPF 绑定(bind)默认模式

javascript - 为什么下面的 javascript 函数总是返回 true?

c# - 如何避免在每个 Controller 中重复一个参数?

c# - 编写 C++ DLL,然后将其包装在 C# 中

wpf - 当 SelectionMode ="Extended"时,如何让 DataGrid 在单击时取消选择?

jquery - 当 if 语句正确时显示一个新的 <p> 元素

python - 如果满足特定条件,则将字符串与列表列表连接起来

c# - 强类型数据集不从存储过程中检索返回值

c# - 如何以只读方式从方法返回对字典的引用?

c# - Kinect 1.8 colorframe 和 depthframe 不协调