我使用以下函数来确定电子邮件是否有效。我有一个客户的电子邮件地址,其域名中有一个连字符: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!