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