PHP:电子邮件验证和接受来自某个域的电子邮件地址


PHP: Email validation and accepting email address from a certain domain

我目前正在使用AJAX/JS,使表单不需要点击按钮或刷新页面。我的询问是关于电子邮件验证的。现在,PHP代码检查电子邮件地址是否有效。我只想让它接受来自某个域的电子邮件。如何通过php实现只接受来自gmail的电子邮件地址示例

PHP用于验证电子邮件:

if($_POST) {
    $email = $_POST['email'];
    if (preg_match('|^[A-Z0-9._%+-]+@[A-Z0-9.-]+'.[A-Z]{2,4}$|i', $email)) {
        echo ('<div id="email_input"><span id="resultval">'.$email.'</span></div>');
    }
    else {
        echo ('<div id="email_input"><span id="resultval">Include a valid email address.</span></div>');
    }
}

Php有一个简单的功能可以帮助您检查电子邮件地址是否有效:

$isValid = filter_var($email, FILTER_VALIDATE_EMAIL);

要检查电子邮件地址是否为gmail地址,以下操作即可:

list ($user, $domain) = explode('@', $email);
$isGmail = ($domain == 'gmail.com');

小心使用正则表达式,它不会验证所有实际的电子邮件地址。

您有一个内置的PHP函数来检查电子邮件是否有效:

$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

如果返回true,那么您只需要检查字符串是否以@gmail.com结尾。请注意,此功能可能存在一些奇怪的问题,因为电子邮件验证标准可能会令人惊讶。

如果你真的想要一个验证所有电子邮件地址的正则表达式,这里是:

(?:[a-z0-9!#$%&'*+/=?^_{|}~-]+(?:'.[a-z0-9!#$%&'*+/=?^_{|}~-]+)*|"(?:['x01-'x08'x0b'x0c'x0e-'x1f'x21'x23-'x5b'x5d-'x7f]|''['x01-'x09'x0b'x0c'x0e-'x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|'[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:['x01-'x08'x0b'x0c'x0e-'x1f'x21-'x5a'x53-'x7f]|''['x01-'x09'x0b'x0c'x0e-'x7f])+)'])

您应该将正则表达式更改为这个

'|^[A-Z0-9._%+-]+@gmail'.com$|i'
相关文章: