Я хочу проверить, действителен ли адрес электронной почты.Формат электронной почты Проверка VB
Как можно проверить адрес электронной почты в VB с использованием регулярных выражений?
([\w-+]+(?:\.[\w-+]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7})
Я хочу проверить, действителен ли адрес электронной почты.Формат электронной почты Проверка VB
Как можно проверить адрес электронной почты в VB с использованием регулярных выражений?
([\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
Почему вы задаете вопрос перед тем, как попробовать? –
Почему бы не просто «вернуть email.IsMatch (emailAddress)» – Jodrell
MSDN Статья: How to: Verify That Email are in Valid E-Mail Format
В этом примере метод вызывает метод Regex.IsMatch (String, String), чтобы убедиться, что строка соответствует шаблону регулярного выражения.
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
Это мой подход, не баловаться с RegEx, взятый из моего ElektroKitAPI:
''' ----------------------------------------------------------------------------------------------------
''' <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
Примечание: Я не выполнил глубокий тест с огромными списками писем.
Если вы preffer регулярного выражения, то this is my own следующего Wikipedia especifications, это дает мне лучшие результаты, чем другое «универсальное» выражения, однако, это выражение не perfectlly построено, он не избегает для например, конфликт между двумя точками, указанный в Wikipedia, но мы предполагаем, что не будут встречаться с такими странными исключениями имен.
Это выражение никогда не дал мне ложный положительный (на данный момент), но, как и любой другой Regex выраж, используйте его на свой страх и риск:
''' ----------------------------------------------------------------------------------------------------
''' <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-\.]+)\..+)$"
Возможный дубликат [Проверка e-mail с регулярным выражением VB.Net] (http://stackoverflow.com/questions/369543/validating-e-mail-with-regular-expression-vb-net) – Jodrell
Не следует ли упрощать свой вопрос: как я могу сопоставить регулярное выражение в VB.Net? " – Jodrell