我一直在寻找这个答案,但我无法找到这个确切的变化。
我正在寻找以下内容来验证:
#1) @toysrus.com
#2) @staples.com
#3) @example.com
以下不验证:
#1) staples.com
#2) Randy@staples.com
#3) @testcom
基本上,我想强制用户输入有效的电子邮件域,而不是电子邮件地址。我有什么想法可以解决这个问题吗?
我想或者向用户询问他们的网站域名,然后将“@”字符附加到该域名,但这更令人困惑。简单地询问用户会更容易,请输入您公司的电子邮件域名。
谢谢!
答案 0 :(得分:1)
您可以使用正则表达式匹配电子邮件域名。 例如:
$pattern = "^@(\w)+((\.\w+)+)$";
if (preg_match($pattern,$domain))
echo "Domain name right"
“^ @”表示字符串应以“@”开头。“(\ w)+”匹配至少1个数字或字母。“(。\ w +)+”匹配至少1个域名,例如“ .com“或”.edu.cn“。 “$”表示字符串的结尾。
答案 1 :(得分:0)
这可以在多阶段过程中完成
$email = 'something@somedomain.com';
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
// The email is a valid format so now we check the domain
$domain = explode('@', $email);
if(getmxrr($domain[1])) {
// This is about as far as we can take it.
// The email is valid and the domain has MX records
}
}