PHP正則驗(yàn)證Email的方法
本文實(shí)例講述了PHP正則驗(yàn)證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;
}
?>
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
- php使用正則驗(yàn)證中文
- php不用正則驗(yàn)證真假身份證
- php 手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式
- php password密碼驗(yàn)證正則表達(dá)式(8位長(zhǎng)度限制)
- PHP 正則表達(dá)式驗(yàn)證中文的問題
- php URL驗(yàn)證正則表達(dá)式
- php下常用表單驗(yàn)證的正則表達(dá)式
- php用戶注冊(cè)信息驗(yàn)證正則表達(dá)式
- php郵箱地址正則表達(dá)式驗(yàn)證
- PHP IPV6正則表達(dá)式驗(yàn)證代碼
- Ajax和PHP正則表達(dá)式驗(yàn)證表單及驗(yàn)證碼
- php正則表達(dá)式驗(yàn)證(郵件地址、Url地址、電話號(hào)碼、郵政編碼)
- PHP實(shí)現(xiàn)的常規(guī)正則驗(yàn)證helper公共類完整實(shí)例
相關(guān)文章
php中通過正則表達(dá)式下載內(nèi)容中的遠(yuǎn)程圖片的函數(shù)代碼
下午抽空寫了個(gè)用PHP正則表達(dá)式判斷內(nèi)容中的圖片,下載并保存非本域名下的圖片的程序2012-01-01
PHP使用pcntl_fork實(shí)現(xiàn)多進(jìn)程下載圖片的方法
這篇文章主要介紹了PHP使用pcntl_fork實(shí)現(xiàn)多進(jìn)程下載圖片的方法,較為詳細(xì)的分析了pcntl_fork的原理與用法,以及使用pcntl_fork實(shí)現(xiàn)多進(jìn)程下載圖片的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
PHP函數(shù)實(shí)現(xiàn)分頁含文本分頁和數(shù)字分頁
分頁功能是經(jīng)常使用的一個(gè)功能,因此用PHP實(shí)現(xiàn)分頁,文本分頁和數(shù)字分頁,對(duì)其以函數(shù)形式進(jìn)行了封裝2014-10-10
PHP中魔術(shù)變量__METHOD__與__FUNCTION__的區(qū)別
這篇文章主要介紹了PHP中魔術(shù)變量__METHOD__與__FUNCTION__的區(qū)別,是深入學(xué)習(xí)PHP程序設(shè)計(jì)所必須掌握的概念,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09
PHP中檢索字符串的方法分析【strstr與substr_count方法】
這篇文章主要介紹了PHP中檢索字符串的方法,結(jié)合實(shí)例形式分析了strstr與substr_count函數(shù)的功能與具體使用技巧,需要的朋友可以參考下2017-02-02
使用dump函數(shù),給php加斷點(diǎn)測(cè)試
本篇文章是對(duì)使用dump函數(shù),給php加斷點(diǎn)測(cè)試進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP+Ajax檢測(cè)用戶名或郵件注冊(cè)時(shí)是否已經(jīng)存在實(shí)例教程
這篇文章主要介紹了PHP+Ajax檢測(cè)用戶名或郵件注冊(cè)時(shí)是否已經(jīng)存在實(shí)例教程,是非常常見的一個(gè)重要功能,常用于論壇注冊(cè)部分或會(huì)員注冊(cè)部分,需要的朋友可以參考下2014-08-08

