Noiz
Noiz

Reputation: 23

Regular Expression always false

So I am writing some javascript to check if a user inputs a gmail address.

At the moment I have the code thats below, but no matter what I do it is giving me false. even when the input has @gmail.com...I feel that the mistake is how I am grabbing the user input in a variable and then testing it with test().

Javascript:

<script>
  function validationCheck() {
    var email = document.getElementById("inputEmail");
    var gmailPatt = /@gmail.com/i;
    var emailMatch = gmailPatt.test(email);

    if (emailMatch == false || emailMatch == true) {
      document.getElementById("emailError").innerHTML =
        "<p>" + emailMatch + "</p>";
    } else {
    }
  }
</script>

html

<form>
  <div class="form-group row">
    <div>
      <label for="inputEmail" class="col-sm-1">Email:</label>
      <input
        type="text"
        class="form-control col-sm-1"
        id="inputEmail"
        placeholder="[email protected]"
      />
      <p id="emailError"></p>
    </div>
  </div>

  <button type="button" onclick="validationCheck()">Check</button>
</form>

Upvotes: 0

Views: 119

Answers (1)

Lu&#237;s Ramalho
Lu&#237;s Ramalho

Reputation: 10218

You need to check the value of the input, var emailMatch = gmailPatt.test(email.value);

function validationCheck() {
  var email = document.getElementById("inputEmail");
  var gmailPatt = /@gmail.com/i;
  var emailMatch = gmailPatt.test(email.value);

  if (emailMatch == false || emailMatch == true) {
    document.getElementById("emailError").innerHTML =
      "<p>" + emailMatch + "</p>";
  } else {}
}
<form>
  <div class="form-group row">
    <div>
      <label for="inputEmail" class="col-sm-1">Email:</label>
      <input type="text" class="form-control col-sm-1" id="inputEmail" placeholder="[email protected]" />
      <p id="emailError"></p>
    </div>
  </div>

  <button type="button" onclick="validationCheck()">Check</button>
</form>

Upvotes: 4

Related Questions