如何让文本框只接受有效的电子邮件?
How can I make a textbox only accept a valid email?
我想让我的文本框检查输入到文本框中的电子邮件是否有效。
到目前为止我得到了:
if (!this.txtEmail.Text.Contains('@') || !this.txtEmail.Text.Contains('.'))
{
MessageBox.Show("Please Enter A Valid Email", "Invalid Email", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
但这只测试它是否有“@”和“.”。在里面。
有没有办法让它检查它是否有 .com 等但只有一个“@”?
.NET 可以为您做到:
bool IsValidEmail(string eMail)
{
bool Result = false;
try
{
var eMailValidator = new System.Net.Mail.MailAddress(eMail);
Result = (eMail.LastIndexOf(".") > eMail.LastIndexOf("@"));
}
catch
{
Result = false;
};
return Result;
}
勾选 MailAddress class
var email = new MailAddress("abc123@example.com");
如果您正在开发网络应用程序,现代浏览器支持 HTML5,因此您可以使用 <input id="txtEmail" type="email" runat="server" />
而不是 TextBox,它会在浏览器中验证输入是否为电子邮件(但您还应该在您的代码中验证它)。使用 txtEmail.Value 获取文本字符串。
我想让我的文本框检查输入到文本框中的电子邮件是否有效。
到目前为止我得到了:
if (!this.txtEmail.Text.Contains('@') || !this.txtEmail.Text.Contains('.'))
{
MessageBox.Show("Please Enter A Valid Email", "Invalid Email", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
但这只测试它是否有“@”和“.”。在里面。
有没有办法让它检查它是否有 .com 等但只有一个“@”?
.NET 可以为您做到:
bool IsValidEmail(string eMail)
{
bool Result = false;
try
{
var eMailValidator = new System.Net.Mail.MailAddress(eMail);
Result = (eMail.LastIndexOf(".") > eMail.LastIndexOf("@"));
}
catch
{
Result = false;
};
return Result;
}
勾选 MailAddress class
var email = new MailAddress("abc123@example.com");
如果您正在开发网络应用程序,现代浏览器支持 HTML5,因此您可以使用 <input id="txtEmail" type="email" runat="server" />
而不是 TextBox,它会在浏览器中验证输入是否为电子邮件(但您还应该在您的代码中验证它)。使用 txtEmail.Value 获取文本字符串。