Email regex pattern in Nodejs

Viewed 1290

I want regex to validate Email Address, which rejects the email addresses like 123@gmail.com or abc-kumar@gmail.com or Raman kumar@gmail.com.
It allow the emails which are containing at least one character or 'combination of number & characters' for example:- kumar123@gmail.com, abc564@xyz.com, kumar@outlook.com

1 Answers

The validation function I use:

function isEmail(email) {
    var emailFormat = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
    if (email !== '' && email.match(emailFormat)) { return true; }
    
    return false;
}

However, in your specific case, to further filter out cases like '123@gmail.com' and 'abc-kumar@gmail.com', the regexp shall be modified a bit into:

var emailFormat = /^[a-zA-Z0-9_.+]*[a-zA-Z][a-zA-Z0-9_.+]*@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;

or, more elegantly:

var emailFormat = /^[a-zA-Z0-9_.+]+(?<!^[0-9]*)@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;

Reference: Regex: only alphanumeric but not if this is pure numeric

Related