php 电子邮件验证无法识别。com.com
php email validation not recognizing .com.com
下面给出问题的测试代码
如果提供的扩展名为 .com.com 的无效电子邮件将被视为有效
请帮忙解决同样的问题
提前致谢
<?php
if(isset($_POST['submit']))
{
function validate_email($email)
{
$exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";
if(eregi($exp,$email))
{
if(checkdnsrr(array_pop(explode("@",$email)),"MX"))
{
return 1;
}
else
{
return 0;
}
}
else
{
return 0;
}
}
$email = $_POST['email'];
print $details= validate_email($email);
}
?>
<form action="" method="post">
<h1> Email </h1>
<input type="email" name="email">
<button type="submit" name="submit"> SUBMIT </button>
</form>
您可以使用
$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i";
或只是
filter_var('email@email',FILTER_VALIDATE_EMAIL)
它怎么知道那个电子邮件地址是错误的?
一个有效的电子邮件地址已经是 "someone@company"
其中 "company" 可能是您的 Intranet 系统主机名。出于类似原因 FILTER_VALIDATE_EMAIL 不检查 "valid" TLD,因为它不知道它是否有效。
至于这一点,建议不要自己编写更具体的检查,因为在很多情况下,这些检查可能会使您的应用程序无用。
您可以使用这个正则表达式:
^([a-z\'0-9\._-]+)@([a-z0-9]+)((\.[a-z0-9]{2,3})(\.[a-z0-9]{2})|(\.[a-z0-9]{2,3}))$
与 "john.doe@gmail.com" 或 "john.doe@domain.co.uk" 配合得很好,但现在有太多不同的顶级域名可供选择,因此很难匹配所有可能性。
您应该尝试 API 电子邮件验证服务。
此致
下面给出问题的测试代码
如果提供的扩展名为 .com.com 的无效电子邮件将被视为有效
请帮忙解决同样的问题
提前致谢
<?php
if(isset($_POST['submit']))
{
function validate_email($email)
{
$exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";
if(eregi($exp,$email))
{
if(checkdnsrr(array_pop(explode("@",$email)),"MX"))
{
return 1;
}
else
{
return 0;
}
}
else
{
return 0;
}
}
$email = $_POST['email'];
print $details= validate_email($email);
}
?>
<form action="" method="post">
<h1> Email </h1>
<input type="email" name="email">
<button type="submit" name="submit"> SUBMIT </button>
</form>
您可以使用
$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i";
或只是
filter_var('email@email',FILTER_VALIDATE_EMAIL)
它怎么知道那个电子邮件地址是错误的?
一个有效的电子邮件地址已经是 "someone@company"
其中 "company" 可能是您的 Intranet 系统主机名。出于类似原因 FILTER_VALIDATE_EMAIL 不检查 "valid" TLD,因为它不知道它是否有效。
至于这一点,建议不要自己编写更具体的检查,因为在很多情况下,这些检查可能会使您的应用程序无用。
您可以使用这个正则表达式:
^([a-z\'0-9\._-]+)@([a-z0-9]+)((\.[a-z0-9]{2,3})(\.[a-z0-9]{2})|(\.[a-z0-9]{2,3}))$
与 "john.doe@gmail.com" 或 "john.doe@domain.co.uk" 配合得很好,但现在有太多不同的顶级域名可供选择,因此很难匹配所有可能性。
您应该尝试 API 电子邮件验证服务。
此致