首页 > 开发 > PHP > 正文

PHP正则验证Email的方法

2024-05-04 23:36:15
字体:
来源:转载
供稿:网友

这篇文章主要介绍了PHP正则验证Email的方法,涉及php正则表达式验证的相关技巧,需要的朋友可以参考下

本文实例讲述了PHP正则验证Email的方法。分享给大家供大家参考。具体如下:

 

 
  1. <?php 
  2. function validateEmail($email
  3. $isValid = true; 
  4. $atIndex = strrpos($email"@"); 
  5. if (is_bool($atIndex) && !$atIndex
  6. $isValid = false; 
  7. else 
  8. $domain = substr($email$atIndex+1); 
  9. $local = substr($email, 0, $atIndex); 
  10. $localLen = strlen($local); 
  11. $domainLen = strlen($domain); 
  12. if ($localLen < 1 || $localLen > 64) 
  13. // local part length exceeded 
  14. $isValid = false; 
  15. else if ($domainLen < 1 || $domainLen > 255) 
  16. // domain part length exceeded 
  17. $isValid = false; 
  18. else if ($local[0] == '.' || $local[$localLen-1] == '.'
  19. // local part starts or ends with '.' 
  20. $isValid = false; 
  21. else if (preg_match('///.//./'$local)) 
  22. // local part has two consecutive dots 
  23. $isValid = false; 
  24. else if (!preg_match('/^[A-Za-z0-9//-//.]+$/'$domain)) 
  25. // character not valid in domain part 
  26. $isValid = false; 
  27. else if (preg_match('///.//./'$domain)) 
  28. // domain part has two consecutive dots 
  29. $isValid = false; 
  30. else if(!preg_match('/^(////.|[A-Za-z0-9!#%&`_=///$/'*+?^{}|~.-])+$/'str_replace("////","",$local))) 
  31. // character not valid in local part unless  
  32. // local part is quoted 
  33. if (!preg_match('/^"(////"|[^"])+"$/'str_replace("////","",$local))) 
  34. $isValid = false; 
  35. if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))) 
  36. // domain not found in DNS 
  37. $isValid = false; 
  38. return $isValid
  39. ?> 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表