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 相关文章推荐
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
php下删除字符串中HTML标签的函数
Aug 27 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
PHP 第三节 变量介绍
Apr 28 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
PHP获取youku视频真实flv文件地址的方法
Dec 23 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
php单例模式的简单实现方法
Jun 10 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
设定php简写功能的方法
Nov 28 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 编程请选择正确的文本编辑软件
2006/12/21 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
python ---lambda匿名函数介绍
2019/03/13 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
python实现猜拳小游戏
2020/04/05 Python
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
产品质量承诺书
2014/03/27 职场文书
委托培训协议书
2014/11/17 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
爱国主题班会教案
2015/08/14 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书