Используйте класс System.Text.RegularExpressions.Regex
:
Function IsEmail(Byval email as string) as boolean
Static emailExpression As New Regex("^[_a-z0-9-]+(.[a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$")
return emailExpression.IsMatch(email)
End Function
Самое важное, что нужно понять в этом ответе, это то, что я сам не писал регулярное выражение. Есть так много неправильных способов, которые кажутся правильными, и есть несколько уровней детализации, к которым вы могли бы обратиться. Например, хотите ли вы ограничить это действительными доменами верхнего уровня, и если да, то как вы учитываете тот факт, что они теперь время от времени добавляют новые TLD? Если регулярное выражение является наиболее подходящим местом для этого теста, или должен иметь отдельный код для этой проверки? Даже выражение в этом ответе теперь очень устарело, так как оно было изначально написано.
Я рекомендую найти внешний ресурс для выражения, которое, как вы знаете, будет поддерживаться с течением времени.