相关疑难解决方法(0)

如何使用正则表达式验证电子邮件地址?

多年来,我慢慢开发了一个正则表达式,可以正确验证MOST电子邮件地址,假设他们不使用IP地址作为服务器部分.

我在几个PHP程序中使用它,它大部分时间都可以工作.但是,我不时会遇到使用它的网站遇到问题的人,我最终不得不进行一些调整(最近我意识到我不允许使用4字符TLD).

验证电子邮件的最佳正则表达式是什么?

我已经看到了几个使用函数的解决方案,这些函数使用了几个较短的表达式,但我宁愿在一个简单的函数中使用一个长复杂表达式,而不是在一个更复杂的函数中使用几个短表达式.

regex email validation email-validation string-parsing

3201
推荐指数
44
解决办法
116万
查看次数

使用ASP.NET 3.5验证进行电子邮件格式验证的最佳正则表达式

我使用以下两个正则表达式来测试带有ASP.NET验证控件的有效电子邮件表达式.我想知道从性能的角度来看哪个是更好的表达,或者有人有更好的表达.

 - \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
 - ^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$

我正在努力避免在BCL团队博客上描述的"指数缓慢表达"问题.

UPDATE

根据反馈,我最终创建了一个函数来测试电子邮件是否有效:

Public Function IsValidEmail(ByVal emailString As String, Optional ByVal isRequired As Boolean = False) As Boolean
    Dim emailSplit As String()
    Dim isValid As Boolean = True
    Dim localPart As String = String.Empty
    Dim domainPart As String = String.Empty
    Dim domainSplit As String()
    Dim tld As String

    If emailString.Length >= 80 Then
        isValid = False
    ElseIf emailString.Length > 0 And emailString.Length < 6 Then
        'Email is too short
        isValid = False
    ElseIf …
Run Code Online (Sandbox Code Playgroud)

regex asp.net

7
推荐指数
2
解决办法
4万
查看次数

正则表达式匹配电子邮件

我需要一个与电子邮件地址匹配的正则表达式,本地@域符合以下要求:

局部部分可以包含Az,0-9,点,下划线和短划线.

可以包含Az,0-9,点和破折号.域需要包含至少一个点.

我如何确保:域不能以点或破折号开头或结尾.并且域需要包含至少一个点?

这两件事确实让我在尝试解决它时遇到了问题.

尝试了以下内容:

Regex.IsMatch(email, @"(?:[^.-])([\w.-])@([\w.-])(?:[.-]$)");
Run Code Online (Sandbox Code Playgroud)

c# regex

3
推荐指数
1
解决办法
4458
查看次数

在c#中检查有效的电子邮件地址

我在我的 c# windows 应用程序中使用 smtp 服务发送电子邮件。我必须以最佳方式执行以降低电子邮件退回率。我必须检查提供的电子邮件地址是否有效。我正在使用代码。

    private void btnCheckValid_Click(object sender, EventArgs e)
        {
            if (isRealDomain(textBox1.Text.Trim()) == true)
                MessageBox.Show("Valid Email Address!");
        }
        private bool isRealDomain(string inputEmail)
        {
            bool isReal = false;
            try
            {
                string[] host = (inputEmail.Split('@'));
                string hostname = host[1];

                IPHostEntry IPhst = Dns.GetHostEntry(hostname);
                IPEndPoint endPt = new IPEndPoint(IPhst.AddressList[0], 25);
                Socket s = new Socket(endPt.AddressFamily,
                        SocketType.Stream, ProtocolType.Tcp);
                s.Connect(endPt);
                s.Close();
                isReal = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                isReal = false;
            }

            return isReal;
        }
Run Code Online (Sandbox Code Playgroud)

通过检查真实域,我可以识别托管 IP,但电子邮件地址是否在主机上创建。

使用正则表达式(正则表达式)我只能使用格式。

所以我的问题是如何在 c# …

c# email validation

2
推荐指数
2
解决办法
2万
查看次数