我需要一些帮助来验证电子邮件地址。
我知道允许用户仅填写“ @ .com”的基本验证
但是,我想更进一步,只允许键入 Gmail/Hotmail/Yahoo 等电子邮件地址。
任何帮助将不胜感激,谢谢!
我需要一些帮助来验证电子邮件地址。
我知道允许用户仅填写“ @ .com”的基本验证
但是,我想更进一步,只允许键入 Gmail/Hotmail/Yahoo 等电子邮件地址。
任何帮助将不胜感激,谢谢!
您可以在 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/