PHP正则验证Email的方法
本文实例讲述了PHP正则验证Email的方法。分享给大家供大家参考。具体如下:
<?php
functionvalidateEmail($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)
{
//localpartlengthexceeded
$isValid=false;
}
elseif($domainLen<1||$domainLen>255)
{
//domainpartlengthexceeded
$isValid=false;
}
elseif($local[0]=='.'||$local[$localLen-1]=='.')
{
//localpartstartsorendswith'.'
$isValid=false;
}
elseif(preg_match('/\\.\\./',$local))
{
//localparthastwoconsecutivedots
$isValid=false;
}
elseif(!preg_match('/^[A-Za-z0-9\\-\\.]+$/',$domain))
{
//characternotvalidindomainpart
$isValid=false;
}
elseif(preg_match('/\\.\\./',$domain))
{
//domainparthastwoconsecutivedots
$isValid=false;
}
elseif(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',str_replace("\\\\","",$local)))
{
//characternotvalidinlocalpartunless
//localpartisquoted
if(!preg_match('/^"(\\\\"|[^"])+"$/',str_replace("\\\\","",$local)))
{
$isValid=false;
}
}
if($isValid&&!(checkdnsrr($domain,"MX")||checkdnsrr($domain,"A")))
{
//domainnotfoundinDNS
$isValid=false;
}
}
return$isValid;
}
?>
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述对大家的php程序设计有所帮助。
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话