我需要一些有关验证电子邮件地址的帮助。
我知道基本的验证方法,该方法仅允许用户填写' @ .com'
但是,我想更进一步,只允许输入Gmail / Hotmail / Yahoo等电子邮件地址。
任何帮助将不胜感激,谢谢!
答案 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'));