我正在使用Windows窗体。
我只是想验证我的文本框(或掩码文本框)是否有电子邮件ID。
任何人都可以告诉我这个想法吗?
答案 0 :(得分:3)
尝试使用正则表达式
@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
答案 1 :(得分:3)
您可以使用代表邮件地址的System.Net.Mail.MailAdress类的构造函数。
尝试使用字符串初始化实例并捕获异常,如果验证失败则抛出异常。像这样:
try
{
new System.Net.Mail.MailAddress(this.textBox.Text);
}
catch(ArgumentException)
{
//textBox is empty
}
catch(FormatException)
{
//textBox contains no valid mail address
}
答案 2 :(得分:2)
尝试正则表达式
@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
或在代码中查看您的电子邮件地址
string email=textbox1.text;
if(email.lastindexof("@")>-1)
{
//valid
}
else
{
}
答案 3 :(得分:1)
string email=textbox1.text;
System.Text.RegularExpressions.Regex expr= new System.Text.RegularExpressions.Regex(@"^[a-zA-Z][\w\.-]{2,28}[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$");
`if (expr.IsMatch(email))
MessageBox.Show("valid");
else MessageBox.Show("invalid");`
答案 4 :(得分:0)
试试这个:
private void emailTxt_Validating(object sender, CancelEventArgs e)
{
System.Text.RegularExpressions.Regex rEmail = new System.Text.RegularExpressions.Regex(@"^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$");
if (emailTxt.Text.Length > 0 && emailTxt.Text.Trim().Length != 0)
{
if (!rEmail.IsMatch(emailTxt.Text.Trim()))
{
MessageBox.Show("check email id");
emailTxt.SelectAll();
e.Cancel = true;
}
}
}
答案 5 :(得分:0)
我建议您使用这种方式,它对我来说效果很好。
/* Add this reference */
using System.Text.RegularExpressions;
---------------------------
if (!string.IsNullOrWhiteSpace(txtEmail.Text))
{
Regex reg = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
if (!reg.IsMatch(txtEmail.Text))
{
Mensaje += "* El email no es válido. \n\n";
isValid = false;
}
}