为什么我的电子邮件验证不起作用? PHP

时间:2010-12-14 15:21:48

标签: php validation email forms

我用过

if (!preg_match('/[a-z||0-9]@[a-z||0-9].[a-z]/', $email)) {
    [PRINT ERROR]
}

&安培;

if (!eregi( "^[0-9]+$", $email)) {
    [PRINT ERROR]
}

&安培;

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    [PRINT ERROR]
}

我也试过取出!并使其向后工作,但由于某些原因,没有人工作,以确定它是否有效。有什么想法?... 我有一个if if声明,我不确定这是否可能是原因..

我正在使用PHP

4 个答案:

答案 0 :(得分:1)

尝试

'/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/'

...

if (!preg_match('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/', strtoupper($email))) {
    [PRINT ERROR]
}

据我所见,你的正则表达式都不会与电子邮件匹配。

答案 1 :(得分:1)

从Kohana源代码中试试这个:

function email($email)
{
    return (bool) preg_match('/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD', (string) $email);
}

答案 2 :(得分:0)

检查你的php版本。 {5.3}之后不推荐使用eregi。此外,正则表达式不正确。

答案 3 :(得分:0)

试试这个(来自wordpress):

// from wordpress code: wp-includes/formatting.php
function is_email($user_email)
{
    $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";

    if (strpos($user_email, '@') !== false && strpos($user_email, '.') !== false)
    {
        if (preg_match($chars, $user_email)) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}