PHP正则验证Email的方法


Posted in PHP onJune 15, 2015

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

<?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] == '.' || $local[$localLen-1] == '.')
  {
   // local part starts or ends with '.'
   $isValid = false;
  }
  else if (preg_match('/\\.\\./', $local))
  {
   // local part has two consecutive dots
   $isValid = false;
  }
  else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
  {
   // character not valid in domain part
   $isValid = false;
  }
  else if (preg_match('/\\.\\./', $domain))
  {
   // domain part has two consecutive dots
   $isValid = false;
  }
  else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local)))
  {
   // character not valid in local part unless 
   // local part is quoted
   if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$local)))
   {
   $isValid = false;
   }
  }
  if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
  {
   // domain not found in DNS
   $isValid = false;
  }
 }
 return $isValid;
}
?>
PHP 相关文章推荐
php中处理模拟rewrite 效果
Dec 09 PHP
ZF等常用php框架中存在的问题
Jan 10 PHP
PHP 图像尺寸调整代码
May 26 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
PHP通过串口实现发送短信
Jul 08 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
Dec 21 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
php简单实现sql防注入的方法
Apr 22 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
实现PHP中session存储及删除变量
Oct 15 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 PHP
laravel 自定义常量的两种方案
Oct 14 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 #PHP
PHP检测用户语言的方法
Jun 15 #PHP
php实现求相对时间函数
Jun 15 #PHP
php数组随机排序实现方法
Jun 13 #PHP
隐性调用php程序的方法
Jun 13 #PHP
PHP获取数组的键与值方法小结
Jun 13 #PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 #PHP
You might like
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
jquery索引在使用中的一些困惑
2013/10/24 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
Python编写生成验证码的脚本的教程
2015/05/04 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
学院领导推荐信
2013/10/30 职场文书
仰望星空观后感
2015/06/10 职场文书
太空授课观后感
2015/06/17 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
java中如何截取字符串最后一位
2022/07/07 Java/Android
python缺失值填充方法示例代码
2022/12/24 Python