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

Ene*_*oma -2 php preg-match

可能重复:
验证电子邮件地址的最佳正则表达式是什么?
是否有用于电子邮件地址验证的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.";
}
?>
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 24

尝试:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo 'Valid';
} else {
  echo 'Invalid';
}
Run Code Online (Sandbox Code Playgroud)


phi*_*hag 7

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

而不是重新发明自己的轮子,使用filter_var:

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo "Valid email address.";
} else {
  echo "Invalid email address.";
}
Run Code Online (Sandbox Code Playgroud)