php正则表达式验证邮箱

邮箱验证代码大都是不能验证一个字母的域名或一个字母的用户名,如:i@phpfensi.com 或 i@phpfensi.net,解决方法如下:

1,不做总长度判断,长度判断可以自己加上;2,支持.net.cn,.com.cn这样的域名后缀;3,邮箱名部分以字母或者数字开头,中间可以有“-”与“_”符号;4,域名部分以字母或者数字开头,中间可以有“-”与“_”符号;

PHP 邮箱验证正则表达式,代码如下:

preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email );

实例代码如下:

  1. /**
  2. * 自己修整的一个邮箱正则表达式
  3. * php粉丝网
  4. */
  5. echo '<meta charset="utf-8" />';
  6. function c_email($email){
  7. $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}$/';
  8. if(preg_match($reg,$email))
  9. return true;
  10. return false;
  11. }
  12. $email = 'mail@lizhong.me';
  13. $check_result = c_email($email);
  14. if($check_result){
  15. echo '邮箱格式正确';
  16. }else{
  17. echo '邮箱格式错误';
  18. }

邮箱验证类,代码如下:

  1. <?php
  2. class Reg
  3. {
  4. public $mail;
  5. function __construct()
  6. {
  7. $this->mail = $_POST["mail"];
  8. }
  9. function RegMail()
  10. {
  11. if(preg_match("/^[0-9a-zA-Z]+(?:[_-][a-z0-9-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*.[a-zA-Z]+$/i", $this->mail))
  12. {
  13. echo "<script language='javascript'>alert('验证成功')</script>";
  14. }
  15. else
  16. {
  17. echo "<script language='javascript'>alert('验证失败')</script>";
  18. }
  19. }
  20. }
  21. $r = new Reg();
  22. $r->RegMail();
  23. $strings = "abc@163.com";
  24. if(preg_match("/^[0-9a-zA-Z]+(?:[_-][a-z0-9-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*.[a-zA-Z]+$/i",$strings))
  25. {
  26. echo"验证成功!是邮箱地址。";
  27. }
  28. else
  29. {
  30. echo"不是邮箱地址!";
  31. }
  32. ?>