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内核介绍及扩展开发指南―基础知识
Sep 11 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
Nov 07 PHP
php按百分比生成缩略图的代码分享
May 10 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
php操作mongoDB实例分析
Dec 29 PHP
Laravel SQL语句记录方式(推荐)
May 26 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 PHP
ThinkPHP打水印及设置水印位置的方法
Oct 14 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 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
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
PHP多线程类及用法实例
2014/12/03 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
简单实现php上传文件功能
2017/09/21 PHP
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
node.js ws模块搭建websocket服务端的方法示例
2019/04/25 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
简单解决Python文件中文编码问题
2015/11/22 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
Python读取指定日期邮件的实例
2019/02/01 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
违反工作纪律检讨书
2014/02/15 职场文书
消防安全责任书范本
2014/04/15 职场文书
党员目标管理责任书
2014/07/25 职场文书
重阳节主题班会
2015/08/17 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
python opencv通过4坐标剪裁图片
2021/06/05 Python