在任何电子邮件地址中是否有特定数量的@符号的规则? 只是想到如果我们要使用PHP检查电子邮件地址是否有效。
在任何电子邮件地址中是否有特定数量的@符号的规则? 只是想到如果我们要使用PHP检查电子邮件地址是否有效。
@
是允许的。我必须问一下,为什么您需要这些信息。请不要尝试编写正则表达式/函数或其他内容来验证电子邮件地址。您必须考虑3个rfc(如果您想考虑unicode,则可能是4个)。而且您将会失败,这会让您发疯。
如需更多信息和可在旧版本PHP中使用的正则表达式,请参见我的先前答案
附言:在@
字符方面没有特定的限制。
"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com
是一个有效的地址。
另请参阅有关该主题的维基百科页面。
我的真正问题是,电子邮件中是否有两个@符号是有意义的?
它该如何运作?
我会使用 filter_var()
和 FILTER_VALIDATE_EMAIL
。以下是一个示例用法和输出:
function testemail($email) {
echo "'$email' => ";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
echo "<br />";
}
testemail('');
testemail('myemailsample.com');
testemail('myemail@sample');
testemail('myemail@sample.com');
testemail('myemail@@sample.com');
testemail('myemail@sa@mple.com');
输出,
'' => bool(false)
'myemailsample.com' => bool(false)
'myemail@sample' => bool(false)
'myemail@sample.com' => string(18) "myemail@sample.com"
'myemail@@sample.com' => bool(false)
'myemail@sa@mple.com' => bool(false)