我一直在寻找这个答案,但我无法找到这个确切的变化。
我正在寻找以下内容进行验证:
#1) @toysrus.com
#2) @staples.com
#3) @example.com
并且以下内容不验证:
#1) staples.com
#2) Randy@staples.com
#3) @testcom
基本上,我想强制用户输入有效的电子邮件域,而不是电子邮件地址。 任何线索我该怎么做?
我想或者向用户询问他们的网站域名,然后只附加"@"字符,但这更令人困惑。 简单地询问用户会更容易,请输入您的公司电子邮件域名。
谢谢!
您可以使用正则表达式来匹配电子邮件域名。例如:
$pattern = "^@('w)+(('.'w+)+)$";
if (preg_match($pattern,$domain))
echo "Domain name right"
"^@"表示字符串应以"@"开头。(''w)+"至少匹配 1 个数字或字母。(.''w+)+" 至少匹配 1 个域名,例如".com"或".edu.cn"。"$"表示字符串的结尾。
这可以在多阶段过程中完成
$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
}
}