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 相关文章推荐
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
PHP获取当前文件所在目录 getcwd()函数
May 13 PHP
php 获取一个月第一天与最后一天的代码
May 16 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
php定时执行任务设置详解
Feb 06 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
PHP命名空间与自动加载类详解
Sep 04 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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
再说下636单管机
2021/03/02 无线电
PHP中的类-什么叫类
2006/11/20 PHP
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
php 生成随机验证码图片代码
2010/02/08 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
javascript add event remove event
2008/04/07 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
vue-ajax小封装实例
2017/09/18 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
win与linux系统中python requests 安装
2016/12/04 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
python列表使用实现名字管理系统
2019/01/30 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
python tqdm库的使用
2020/11/30 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
自我介绍演讲稿
2014/01/15 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
xxx同志考察材料
2014/02/07 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
机电系毕业生求职信
2014/07/11 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android