电子邮件地址输入验证

问题描述 投票:1回答:3

有没有什么办法,使在WPF C#电子邮件地址文本框输入验证?正则表达式或验证表达式或任何可以帮助,最好有代码示例和一些指令

c# wpf textbox
3个回答
7
投票

在text_changed事件中,你可以在文本框的值传递给一个辅助类。

public static class ValidatorExtensions
{
    public static bool IsValidEmailAddress(this string s)
    {
        Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
        return regex.IsMatch(s);
    }
}

现在上的文字改变事件中,你可以测试输入

private void myTextBox_TextChanged(object sender, EventArgs e)
{
   bool result = ValidatorExtensions.IsValidEmailAddress( myTextBox.Text );
}

6
投票

有几种方法来检查电子邮件地址是有效的

About System.Net.Mail.MailAddress About正则表达式表达

 static void Main(string[] args)
        {
            var validMail = "[email protected]";
            var invalidMail = "123";
            Console.WriteLine("IsValidMailAddress1 Test");
            Console.WriteLine(string.Format("Mail Address : {0} . is valid : {1}", validMail, IsValidMailAddress1(validMail)));
            Console.WriteLine(string.Format("Mail Address : {0} . is valid : {1}", invalidMail, IsValidMailAddress1(invalidMail)));

            Console.WriteLine("IsValidMailAddress2 Test");
            Console.WriteLine(string.Format("Mail Address : {0} . is valid : {1}", validMail, IsValidMailAddress2(validMail)));
            Console.WriteLine(string.Format("Mail Address : {0} . is valid : {1}", invalidMail, IsValidMailAddress2(invalidMail)));

        }


        static bool IsValidMailAddress1(string mail)
        {
            try
            {
                System.Net.Mail.MailAddress mailAddress = new System.Net.Mail.MailAddress(mail);

                return true;
            }
            catch
            {
                return false;
            }
        }

        static bool IsValidMailAddress2(string mailAddress)
        {
            return Regex.IsMatch(mailAddress, @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$");
        }

1
投票

这是最好的一个,我发现:

Regex.IsMatch(emailAddress, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase)
© www.soinside.com 2019 - 2024. All rights reserved.