特定域名的正则表达式

时间:2016-04-18 06:04:23

标签: php regex

我是一个正则表达式noob,但我希望写一个正则表达式来检查域名xyz.com.it的电子邮件,如果用户密钥在abc.com或其他TLD域名中,它将通过。如果用户在@y之后的xyz中键,只有xyz.com.it会通过,xyz.net.it或xyz.net等其他人都不会通过。任何想法怎么做?

我曾尝试过

var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
var regexEmail = regex.test($('#email').val());

仅验证普通电子邮件

1 个答案:

答案 0 :(得分:0)

现在不使用regex而是使用PHP的strstr功能,而不是像

一样
$email = "xyz@xyz.com";
$email2 = "xyz@xyz.net";
$valid_domain = "@xyz.com";

function checkValidDomain($email, $valid_domain){
    if(!filter_var($email,FILTER_VALIDATE_EMAIL) !== false){
        if(strstr($email,"@") == $valid_domain){
            return "Valid";
        }else{
            return "Invalid";
        }
    }else{
        return "Invalid Email";
    }
}

echo checkValidDomain($email, $valid_domain);// Valid
echo checkValidDomain($email2, $valid_domain);// Invalid

为什么我没有在这里使用正则表达式,你也可以阅读SO上的许多帖子Email validation using regular expression in PHPUsing a regular expression to validate an email address