我用过
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
答案 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;
}
}