title: VB.NET email validation with Regex
body: <p>I've tried implementing a rather simple email validation function that seems return a false match even though the input is a valid email. I have searched for any issues with the existing regex but it seems to be correct.</p>
  
  <p>Even though the match returns a false value the program is stepping to the next validation level (which it shouldn't).</p>
  
  <p>Here is the email validation function.</p>
  
  <pre><code>Function EmailAddressChecker(ByVal emailAddress As String) As Boolean
          Dim regExPattern As String = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"
          Dim emailAddressMatch As Match = Regex.Match(emailAddress, regExPattern)
          If emailAddressMatch.Success Then
              Return True
          Else
              Return False
          End If
  End Function
  </code></pre>
  
  <p>And for the form validation that calls upon the email validation function.</p>
  
  <pre><code>If (String.IsNullOrEmpty(EmailTextBox.Text) OrElse EmailAddressChecker(EmailTextBox.ToString)) Then
              MessageBox.Show("Please enter a valid email addresss")
              Return False
  End If
  </code></pre>
  
  <p>The call for all of this happens on an click event which triggers a cascading serious of If statements checking to see if all the fields are set. </p>
  
  <p>Skipping a large chunk of code the click event asks if "AreFieldsSet &lt;> True". Inside of the "AreFieldsSet" function contains all the validation for multiple inputs; one of which is the email validation if statement.</p>