选择语言 :

 Core_Valid::email

Check an email address for correct format.

boolean Core_Valid::email( string $email [, boolean $strict = bool false ] )
link
http://www.iamcal.com/publish/articles/php/parsing_email/
http://www.w3.org/Protocols/rfc822/

参数列表

参数 类型 描述 默认值
$email string Email address
$strict boolean Strict RFC compatibility bool false
返回值
  • boolean
File: ./core/classes/valid.class.php
public static function email($email, $strict = false)
{
    if ($strict === true)
    {
        $qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
        $dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
        $atom  = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
        $pair  = '\\x5c[\\x00-\\x7f]';

        $domain_literal = "\\x5b($dtext|$pair)*\\x5d";
        $quoted_string  = "\\x22($qtext|$pair)*\\x22";
        $sub_domain     = "($atom|$domain_literal)";
        $word           = "($atom|$quoted_string)";
        $domain         = "$sub_domain(\\x2e$sub_domain)*";
        $local_part     = "$word(\\x2e$word)*";

        $expression     = "/^$local_part\\x40$domain$/D";
    }
    else
    {
        $expression = '/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD';
    }

    return (bool)preg_match($expression, (string)$email);
}