如何确保我的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,也返回了true.我没有输入” .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