Home >Backend Development >PHP Tutorial >PHP regular expression email verification sample code

PHP regular expression email verification sample code

怪我咯
怪我咯Original
2017-07-12 11:43:161257browse

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。这篇文章主要介绍了PHP正则验证Email的方法,涉及php正则表达式验证的相关技巧,需要的朋友可以参考下。具体如下:

<?php
function validateEmail($email)
{
 $isValid = true;
 $atIndex = strrpos($email, "@");
 if (is_bool($atIndex) && !$atIndex)
 {
  $isValid = false;
 }
 else
 {
  $domain = substr($email, $atIndex+1);
  $local = substr($email, 0, $atIndex);
  $localLen = strlen($local);
  $domainLen = strlen($domain);
  if ($localLen < 1 || $localLen > 64)
  {
   // local part length exceeded
   $isValid = false;
  }
  else if ($domainLen < 1 || $domainLen > 255)
  {
   // domain part length exceeded
   $isValid = false;
  }
  else if ($local[0] == &#39;.&#39; || $local[$localLen-1] == &#39;.&#39;)
  {
   // local part starts or ends with &#39;.&#39;
   $isValid = false;
  }
  else if (preg_match(&#39;/\\.\\./&#39;, $local))
  {
   // local part has two consecutive dots
   $isValid = false;
  }
  else if (!preg_match(&#39;/^[A-Za-z0-9\\-\\.]+$/&#39;, $domain))
  {
   // character not valid in domain part
   $isValid = false;
  }
  else if (preg_match(&#39;/\\.\\./&#39;, $domain))
  {
   // domain part has two consecutive dots
   $isValid = false;
  }
  else if(!preg_match(&#39;/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\&#39;*+?^{}|~.-])+$/&#39;, str_replace("\\\\","",$local)))
  {
   // character not valid in local part unless 
   // local part is quoted
   if (!preg_match(&#39;/^"(\\\\"|[^"])+"$/&#39;, str_replace("\\\\","",$local)))
   {
   $isValid = false;
   }
  }
  if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
  {
   // domain not found in DNS
   $isValid = false;
  }
 }
 return $isValid;
}
?>

The above is the detailed content of PHP regular expression email verification sample code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn