【问题标题】:Email mask for MaskedTextBox in C#C# 中 MaskedTextBox 的电子邮件掩码
【发布时间】: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


    【解决方案1】:

    试试这个

    bool IsValidEmail(string email)
    {
        try {
            var mail = new System.Net.Mail.MailAddress(email);
            return true;
        }
        catch {
            return false;
        }
    }
    

    【讨论】:

    • 把你得到这个答案的源代码放在哪里
    • 这适用于'@',但它不检查是否为'.'之后是必要的。有什么建议吗?
    • @Mike 你可以通过这个链接获得更多信息msdn.microsoft.com/en-us/library/…
    【解决方案2】:

    试试这个代码:

        <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

    Source

    【讨论】:

    • 不错,但如果我想允许随机域和扩展名怎么办?
    【解决方案3】:

    来自:https://docs.microsoft.com/en-us/dotnet/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format

        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;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 2010-09-17
      • 1970-01-01
      相关资源
      最近更新 更多