如何验证电子邮件地址

时间:2019-10-25 09:15:49

标签: jquery validation

我需要一些有关验证电子邮件地址的帮助。

我知道基本的验证方法,该方法仅允许用户填写' @ .com'

但是,我想更进一步,只允许输入Gmail / Hotmail / Yahoo等电子邮件地址。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在javascript中使用正则表达式来常规电子邮件验证,例如:

var validEmail = function(email) {
  var expression = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return expression.test(email);
}

//Usage
if(validEmail('somename@domain.some')){
    //Do something
}

//Return True
console.log(validEmail('somename@domain.some'));

或者仅允许电子邮件地址,例如 Gmail / Hotmail / Yahoo

//Return true if valid email is passed
var validEmail = function(email) {
      var expression = /^([\w-\.]+@(?!gmail.com)(?!yahoo.com)(?!hotmail.com)(?!yahoo.co.in)([\w-]+\.)+[\w-]{2,4})?$/;
      return !expression.test(email);
    }

//Usage
if(validEmail('somename@gmail.com')){
    //Do something
}

//Return False
console.log(validEmail('somename@domain.some'));
//Return True
console.log(validEmail('somename@gmail.com'));

如果需要,可以添加更多域使其表达如下:

var expression = /^([\w-\.]+@(?!gmail.com)(?!yahoo.com)(?!hotmail.com)(?!yahoo.co.in)(?!outlook.com)(?!me.com)(?!msn.com)(?!ymail.com)([\w-]+\.)+[\w-]{2,4})?$/;

在这种情况下,我添加了Yahoo,Hotmail和一些...

还有另一个带有严格验证的变体:

//Return true if valid email is passed
function isEmail(str) {
  var allow = ["gmail.com", "hotmail.com", "yahoo.com"];
  for(var i = 0; i< allow.length; i++) {
    if(str.indexOf(allow[i]) != -1) {
       return true;
    }
  }
  return false;
}

//Return True
console.log(isEmail('somename@gmail.com'));

实时示例工作原理-https://jsfiddle.net/Coderius/L6gqvy3n/