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 相关文章推荐
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
php获取文件名后缀常用方法小结
Feb 24 PHP
PHP实现事件机制实例分析
Jun 26 PHP
分享PHP守护进程类
Dec 30 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
php字符串操作常见问题小结
Oct 11 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
PHP PDO数据库操作预处理与注意事项
Mar 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
用PHP来写记数器(详细介绍)
2006/10/09 PHP
如何使用PHP中的字符串函数
2006/11/24 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
python移位运算的实现
2019/07/15 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
五年级语文教学反思
2014/01/30 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
一份文言文检讨书
2014/09/13 职场文书
先进工作者事迹材料
2014/12/23 职场文书
保留意见审计报告
2015/06/05 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书