正则表达式有效的电子邮件

时间:2015-02-03 20:27:40

标签: php regex email

我正在使用以下功能来确定电子邮件是否有效。我的客户的电子邮件地址在域名中有连字符: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;
    } 
}

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

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

只需使用:

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