Home > Back-end >  How to check if on input matches a string pattern with jQuery
How to check if on input matches a string pattern with jQuery

Time:02-23

My goal is to check if an email input field (as a user is typing characters into it), matches a pattern or not. This is my working example so far, but I feel stuck when it gets to the point of actually matching the process "while" typing...

Below is my working example which I'm trying to capitalize on...


   //...

    var $attemail = mtarget.find(".my-email-field"); //INPUT

    function validateEmail(email) {
      var re = /\S @\S \.\S /;
      if (re.test(email) == false) {
        console.log('Email field is not valid');
        //issueFlag.push(noticeEmail);
      }
    }

    function checkEmailOnType() {
      $attemail.on("input", function(){
        var $characters = jQuer(this).val();

        if ($characters.toLowerCase())  {
            //IF MY CHARACTER TYPING IS PASSING OR NOT PASSING 
            //MY validateEmail() FUNCTION ABOVE, HOW DO WE SAY THAT?  
        }
      });
    }

    //...


CodePudding user response:

Add a return value to your function. Yours as it is returns undefined which you can just change to return the result of re.test(email).

//...

var $attemail = mtarget.find(".my-email-field"); //INPUT

function validateEmail(email) {
  var re = /\S @\S \.\S /;
  return re.test(email)
}

//function checkEmailOnType() {
  $attemail.on("input", function(){
    var $characters = jQuer(this).val();

    if ($characters.toLowerCase())  {
        //IF MY CHARACTER TYPING IS PASSING OR NOT PASSING 
        //MY validateEmail() FUNCTION ABOVE, HOW DO WE SAY THAT?
        if(validateEmail($characters) == false){
            console.log('Email field is not valid')
        }
    }
  });
//}

//...
  • Related