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中使用临时表查询数据的一个例子
Feb 03 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 PHP
php制作动态随机验证码
Feb 12 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
php网页版聊天软件实现代码
Aug 12 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
thinkphp分页实现效果
Oct 13 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
Laravel框架使用Redis的方法详解
May 30 PHP
docker-compose部署php项目实例详解
Jul 30 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 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
我的论坛源代码(九)
2006/10/09 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
js Flash插入函数免激活代码
2009/03/31 Javascript
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
浅谈Python的异常处理
2016/06/19 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
历史专业个人求职信范文
2013/12/07 职场文书
餐饮加盟计划书
2014/01/10 职场文书
班委竞选演讲稿
2014/04/28 职场文书
2015年教师自我评价范文
2015/03/04 职场文书