In C# windows forms how a MaskedTextBox for email address can be implemented
public void Form1_Load(Object sender, EventArgs e)
{
// Other initialization code
mtxtEmailID.Mask = "..........";
what should be the Mask Type in place of dots
mtxtEmailID.MaskInputRejected += new MaskInputRejectedEventHandler(mtxtEmailID_MaskInputRejected)
}
void mtxtEmailID_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
{
if(!Regex.IsMatch(txtEmailID.Text, "^[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]$"))
the regex here gives me error, let me know what is the right one for email validation.
{
toolTip1.ToolTipTitle = "Invalid Input";
toolTip1.Show("Enter valid email address", mtxtEMailID);
}
}
You can find info about MaskedTextBox here
If you want to validate an Email Address Regex is not the right choice.There are many corner cases that the regex
wont cover...
Use MailAddress
try
{
address = new MailAddress(address).Address;
//email address is valid since the above line has not thrown an exception
}
catch(FormatException)
{
//address is invalid
}
But if you need regex, it should be:
.+@.+
This kind of approach in my project made the email validation simple considering only few factors which are important in email like '@' and '.' . I felt not to make it complex as email address for every one isn't compulsory.
private void txtEmailID_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
string errorMsg;
if (!ValidEmailAddress(txtEmailID.Text, out errorMsg))
{
// Cancel the event and select the text to be corrected by the user.
e.Cancel = true;
txtEmailID.Select(0, txtEmailID.Text.Length);
// Set the ErrorProvider error with the text to display.
this.errorProvider1.SetError(txtEmailID, errorMsg);
}
}
public bool ValidEmailAddress(string txtEmailID, out string errorMsg)
{
// Confirm that the e-mail address string is not empty.
if (txtEmailID.Length == 0)
{
errorMsg = "e-mail address is required.";
return false;
}
// Confirm that there is an "@" and a "." in the e-mail address, and in the correct order.
if (txtEmailID.IndexOf("@") > -1)
{
if (txtEmailID.IndexOf(".", txtEmailID.IndexOf("@")) > txtEmailID.IndexOf("@"))
{
errorMsg = "";
return true;
}
}
errorMsg = "e-mail address must be valid e-mail address format.n" +
"For example 'someone@example.com' ";
return false;
}
private void txtEmailID_Validated(object sender, EventArgs e)
{
// If all conditions have been met, clear the ErrorProvider of errors.
errorProvider1.SetError(txtEmailID, "");
}
链接地址: http://www.djcxy.com/p/92846.html
上一篇: 如何检查电子邮件是否为有效格式