花了点时间写的一个PHP邮箱正则验证方法

PHP 2012-07-12 PHP,正则,格式

几乎学习程序的童鞋,开始最怕的就莫过于正则表达式了,简单的还好,复杂的简直让你头疼。网上一堆邮箱正则表达式,但通过验证发现都有一些小bug,这个邮箱正则是根据目前域名命名规则以及长度写出的。

1,不做总长度判断,长度判断可以自己加上;

2,支持.net.cn,.com.cn这样的域名后缀;

3,邮箱名部分以字母或者数字开头,中间可以有“-”与“_”符号;

4,域名部分以字母或者数字开头,中间可以有“-”与“_”符号;

/**
 * 自己修整的一个邮箱正则表达式
 * 琼台博客
 */
echo '<meta charset="utf-8" />';
function c_email($email){
    $reg='/^([a-zA-Z0-9]{1,20})(([\_\-\.])?([a-zA-Z0-9]{1,20}))*@([a-zA-Z0-9]{1,20})(([\-\_])?([a-zA-Z0-9]{1,20}))*(\.[a-z]{2,4}){1,2}$/';
    if(preg_match($reg,$email))
        return true;    
    return false;
}
$email = 'mail@lizhong.me';
$check_result = c_email($email);
if($check_result){
    echo '邮箱格式正确';
}else{
    echo '邮箱格式错误';
}

2012-08-10日更新

@ 以上方法在PHP中实现

@ 由于PHP的正则与JS的正则声明格式一样,因此可以在JS实现

文字链接:《花了点时间写的一个PHP邮箱正则验证方法

文章地址:http://www.qttc.net/201207130.html

除非标注,琼台博客所有博文均为原创,转载请加文字链接注明来源

乳名?小名?昵称?网名?均可

email,放心,我不会给你乱投广告的

想获得回访就把你的站点URL写上(没有留空)

[NOTICE]木要投放广告
[NOTICE]木要骂人,说不该说的话
[NOTICE]自由言论,但要遵纪守法

Comments 5

  • 这个方法不太全,我的邮箱p.jiaxu#gmail.com就匹配不了,试试百度的邮箱正则: $reg= <<<MAIL /^[\\w!#\\$%'\\*\\+\\-\\/=\\?\\^`{}\\|~]+([.][\\w!#\\$%'\\*\\+\\-\\/=\\?\\^`{}\\|~]+)*@[-a-z0-9]{1,20}[.][a-z0-9]{1,10}([.][a-z]{2})?$/i MAIL; var_dump(preg_match($reg,'p.jiaxu@gmail.com'));
    2012-07-17 17:19:33 [ 跟帖 ]
    呵呵,邮箱用户名部分不支持点符号,不过感谢宝贵意见,貌似现在用户名部分可以使用点
    2012-07-17 17:23:08 [ 跟帖 ]
    1 #
  • 才发现点击评论者头像,有新变化。。做了蛮多细节优化嘛。。
    2012-07-13 08:29:48 [ 跟帖 ]
    呵呵,是做了一些优化,感谢支持哈!!
    2012-07-16 18:24:55 [ 跟帖 ]
    2 #
  • 相当麻烦的说,但是又不可或缺....
    2012-07-13 08:28:04 [ 跟帖 ]
    3 #