【发布时间】:2014-01-14 07:09:24
【问题描述】:
有没有人准备好 MaskedTextBox 的电子邮件掩码?
例如
aaaa...aaa@fff.ee / aaaa...aaa@ff.ee / aaaa...aaa@fff.eee / aaaa...aaa@ff.eee /
附言请不要推荐正则表达式!
【问题讨论】:
标签: c# textbox maskedtextbox
有没有人准备好 MaskedTextBox 的电子邮件掩码?
例如
aaaa...aaa@fff.ee / aaaa...aaa@ff.ee / aaaa...aaa@fff.eee / aaaa...aaa@ff.eee /
附言请不要推荐正则表达式!
【问题讨论】:
标签: c# textbox maskedtextbox
试试这个
bool IsValidEmail(string email)
{
try {
var mail = new System.Net.Mail.MailAddress(email);
return true;
}
catch {
return false;
}
}
【讨论】:
试试这个代码:
<asp:TextBox ID="txtemail" runat="server"></asp:TextBox>
<cc1:MaskedEditExtender ID="MaskedEditExtender1" runat="server" Mask="AAAAAA@domain.com"
InputDirection="LeftToRight" TargetControlID="txtemail">
</cc1:MaskedEditExtender>
在掩码属性in place of AAAAAA 中,您想添加更多AAA,这取决于您要求多少character 允许用户输入。
或
您在文本框中输入了这样的选项,用户只能输入character,无论您在掩码属性中传递什么。
如下图:
http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.mask(v=vs.90).aspxMaskedTextBox
【讨论】:
public static bool IsValidEmail(string email)
{
if (string.IsNullOrWhiteSpace(email))
return false;
try
{
// Normalize the domain
email = Regex.Replace(email, @"(@)(.+)$", DomainMapper,
RegexOptions.None, TimeSpan.FromMilliseconds(200));
// Examines the domain part of the email and normalizes it.
string DomainMapper(Match match)
{
// Use IdnMapping class to convert Unicode domain names.
var idn = new IdnMapping();
// Pull out and process domain name (throws ArgumentException on invalid)
string domainName = idn.GetAscii(match.Groups[2].Value);
return match.Groups[1].Value + domainName;
}
}
catch (RegexMatchTimeoutException e)
{
return false;
}
catch (ArgumentException e)
{
return false;
}
try
{
return Regex.IsMatch(email,@"^[^@\s]+@[^@\s]+\.[^@\s]+$", RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
}
catch (RegexMatchTimeoutException)
{
return false;
}
}
【讨论】: