正则表达式有效电子邮件


Regex valid e-mail

我使用以下函数来确定电子邮件是否有效。我有一个客户的电子邮件地址,其域名中有一个连字符:Example@some-thing.com,并且它返回为无效。不幸的是,我不明白正则表达式。有人可以帮我修复它以接受他的电子邮件吗?

function isValidEmail($email)
{
    $regex = "/([a-z0-9_]+|[a-z0-9_]+'.[a-z0-9_]+)@(([a-z0-9]|[a-z0-9]+'.[a-z0-9]+)+'.([a-z]{2,4}))/i"; 
    if(!preg_match($regex, $email)) { 
        return false;   } 
    else { 
    return true;
    } 
}

不要使用自定义正则表达式,使用 PHP 内置的 filter_var()

function isValidEmail($email) {
    return filter_var($email, FILTER_VALIDATE_EMAIL);
}

不要费心尝试自己重新创建它,使用正则表达式的电子邮件验证可能会变得非常复杂。PHP 提供了一个有用的函数filter_var()可用于此目的。

只需使用:

if (filter_val($email_address, FILTER_VALIDATE_EMAIL)) {
    // The email address is valid!
}
else
    // The email address is invalid!