我是一个正则表达式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());
Run Code Online (Sandbox Code Playgroud)
只验证普通电子邮件
现在,regex您可以简单地使用strstrPHP 函数,而不是使用,例如
$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
Run Code Online (Sandbox Code Playgroud)
为什么我没有在这里使用正则表达式,您也可以阅读其中的许多线程,在 PHP 中使用正则表达式进行电子邮件验证和使用正则表达式验证电子邮件地址