这个preg_match如何检查电子邮件验证?

时间:2013-07-12 14:02:47

标签: php preg-match

我有一个功能(有效)并检查电子邮件地址是否有效。我理解大部分工作是如何工作的,除了实际测试的部分有一个体面的电子邮件。

这是如何运作的:

 if ( preg_match("/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i", $email) ) {
        $valid_address = true;
      } else {
        $valid_address = false;
      }
    } 

我真的不了解preg_match,所以这看起来几乎是随机字符。

2 个答案:

答案 0 :(得分:4)

请勿使用preg_match来验证电子邮件。 PHP有一个内置函数。

filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)

那就是说,preg_match的运营商是well documented

答案 1 :(得分:1)

首先,preg_match有文档: http://php.net/manual/en/function.preg-match.php

但是你真正想知道的是正则表达式(那一串疯狂的字符): Learning Regular Expressions

第二个答案有一个不错的概述。