使用正则表达式进行简单电子邮件验证

可能重复:
验证电子邮件地址的最佳正则表达式是什么?
有一个用于电子邮件地址验证的PHP库吗?

在我的注册表格中,用户将添加他的电子邮件,然后通过电子邮件验证他的帐户。 然而,我想要一个简单的电子邮件验证,我想知道以下是否合适。

<?php
$email = "someone@example.com";

if(eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)) {

  echo "Valid email address.";
}

else {

  echo "Invalid email address.";
}
?>

尝试:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo 'Valid';
} else {
  echo 'Invalid';
}

您的正则表达式不必要地禁止子域名,例如user@unit.company.com 。 另外,您不应该使用已弃用的eregi

而不是重新发明你自己的车轮,使用filter_var

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo "Valid email address.";
} else {
  echo "Invalid email address.";
}

除了正则表达式,你也可以使用filter_var

if (filter_var('someone@example.com', FILTER_VALIDATE_EMAIL)) === false)
{
  echo "Invalid email address.";
}
链接地址: http://www.djcxy.com/p/16565.html

上一篇: Using regex for simple email validation

下一篇: find emails in a String