E-posta adresinin geçerli olup olmadığını kontrol etmek istiyorum.E-posta Formatı Denetimi VB'de
Bir e-posta adresi, Normal İfadeler kullanılarak VB'de nasıl doğrulanabilir?
([\w-+]+(?:\.[\w-+]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7})
E-posta adresinin geçerli olup olmadığını kontrol etmek istiyorum.E-posta Formatı Denetimi VB'de
Bir e-posta adresi, Normal İfadeler kullanılarak VB'de nasıl doğrulanabilir?
([\w-+]+(?:\.[\w-+]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7})
Function validateEmail(emailAddress) As Boolean
Dim email As New Regex("([\w-+]+(?:\.[\w-+]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7})")
If email.IsMatch(emailAddress) Then
Return True
Else
Return False
End If
Neden bir kez denemeden önce soru soruyorsunuz? –
Neden sadece '' email.IsMatch (emailAddress) 'i değil – Jodrell
MSDN Madde: How to: Verify That Email are in Valid E-Mail Format
Bu örnek yöntem dizisi normal bir ifade modeline uygun olduğunu doğrulamak için Regex.IsMatch (String, String) yöntemini çağırır.
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Validates a mail address.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <example> This is a code example.
''' <code>
''' Dim isValid As Boolean = ValidateMail("[email protected]")
''' Dim isValid As Boolean = ValidateMail("mailto:[email protected]")
''' </code>
''' </example>
''' ----------------------------------------------------------------------------------------------------
''' <param name="address">
''' The mail address.
''' </param>
''' ----------------------------------------------------------------------------------------------------
''' <returns>
''' <see langword="True"/> if the mail address is valid, <see langword="False"/> otherwise.
''' </returns>
''' ----------------------------------------------------------------------------------------------------
<DebuggerStepThrough>
Public Shared Function ValidateMail(ByVal address As String) As Boolean
If Not address.StartsWith("mailto:", StringComparison.OrdinalIgnoreCase) Then
address = address.Insert(0, "mailto:")
End If
If Not Uri.IsWellFormedUriString(address, UriKind.Absolute) Then
Return False
End If
Dim result As Uri = Nothing
If Uri.TryCreate(address, UriKind.Absolute, result) Then
Return (result.Scheme = Uri.UriSchemeMailto)
Else
Return False
End If
End Function
Not:
Function IsValidEmailFormat(ByVal s As String) As Boolean
Return Regex.IsMatch(s, "^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$")
End Function
Bu RegExile karışıklık olmadan benim yaklaşımdır, benim ElektroKitAPI alınan derin bir testi uygulandı vermedi büyük e-posta listeleri ile. Eğer Wikipedia especifications aşağıdaki ardından this is my own normal bir ifade, preffer Eğer
, bana diğer "evrensel" ifadeleri daha iyi sonuç verir, ancak bu ifade perfectlly inşa edilmez, için önlemek değil Örneğin, Wikipedia'da belirtilen çift nokta çakışması, ancak bunun gibi garip adlandırma istisnaları ile karşılaşmayacağını varsayalım.
Bu ifade bana (an be) yanlış Pozitif vermedim, ancak diğer Regex ifade, kendi sorumluluğunuzdadır bunu kullanan gibidir: ait
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' A pattern that matches an e-mail address.
''' <para></para>
'''
''' For Example:
''' <para></para>
''' <c>[email protected]</c>
'''
''' </summary>
''' ----------------------------------------------------------------------------------------------------
Public Const EMail As String =
"^(?<address>(?<local>[\d\w!#\$%\&'\*\+-/=\?\^_`\\\|~""\(\),:;\<\>@\[\]\{\}\.]+)@(?<domain>[\d\w-\.]+)\..+)$"
Olası yinelenen [doğrulanıyor düzenli ifadeyle e-posta VB.Net] (http://stackoverflow.com/questions/369543/validating-e-mail-with-regular-expression-vb-net) – Jodrell
Sorunuzu basitleştirmemelisiniz, " VB.Net'te düzenli bir ifadeyi nasıl eşleştirebilirim? " – Jodrell