繁体   English   中英

如何验证来自特定域的电子邮件地址?

[英]How can I validate an email address from a specific domain?

我有这段代码可以验证电子邮件输入。 我的问题是,我希望我的表格仅接受一个特定的域。 例如,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;
}

修改您的函数,您将使用如下代码:

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);        
}

简单的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;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM