我有这段代码来验证电子邮件输入。我的问题是,我希望我的表单只接受一个特定的域名。例如,test @ thisdomainonly.com。我不知道该怎么做。这是我到目前为止所做的:
function validateEmail(email)
{
var splitted = email.match("^(.+)@(.+)$");
if (splitted == null) return false;
if (splitted[1] != null)
{
var regexp_user = /^\"?[\w-_\.]*\"?$/;
if (splitted[1].match(regexp_user) == null) return false;
}
if (splitted[2] != null)
{
var regexp_domain = /^[\w-\.]*\.[A-Za-z]{2,4}$/;
if (splitted[2].match(regexp_domain) == null)
{
var regexp_ip = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
if (splitted[2].match(regexp_ip) == null) return false;
} // if
return true;
}
return false;
}
答案 0 :(得分:5)
修改你的功能,你会使用这样的东西:
function validateEmail(email)
{
var splitted = email.match("^(.+)@thisdomainonly\.com$");
if (splitted == null) return false;
if (splitted[1] != null)
{
var regexp_user = /^\"?[\w-_\.]*\"?$/;
if (splitted[1].match(regexp_user) == null) return false;
return true;
}
return false;
}
但更有效的版本是:
function validateEmail(email){
return /^\"?[\w-_\.]*\"?@thisdomainonly\.com$/.test(email);
}
答案 1 :(得分:2)
如何进行简单的indexOf检查:
function checkEmail(email, domainName){
if(email.indexOf(domainName) > 0)
if((email.indexOf(domainName) + domainName.length) == email.length){
//do regex checking if any
return true;
}
alert('Please enter a valid email for : '+ domainName)
return false;
}