在php中我們經常會來利用正則表達式來驗證用戶輸入的信息是不是郵箱地址了,下面我來給大家介紹判斷郵箱地址的正則表達式詳解
判斷郵件的一個正則表達式,逐句解釋下是什麼意思
代碼如下 復制代碼^(w+((-w+)|(.w+))*)+w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$
^ 匹配字符串頭
(w+((-w+)|(.w+))*) 1:這裡匹配laidfj456、sfi-lsoke、fe.23i這樣的字符串
+ 匹配加號
w+((-w+)|(.w+))* 同1
@ 匹配@
[A-Za-z0-9]+ 2:由大小寫字母和數字?成的字符串,等價於w+
((.|-)[A-Za-z0-9]+)* 匹配0個或多個由"."或"-"開頭的字符串,如.oeiu234mJ、-oiwuer4
. 匹配"."
[A-Za-z0-9]+ 同2
$ 匹配字符串的?尾
實例
代碼如下 復制代碼<?php
/**
* 郵件的正則表達式 @author:lijianghai
*/
function isEmail($input = null)
{ //用戶名:以數字、字母、下滑線組成;
$email = $input;
/*使用preg_ereg()出錯:因為第二個參數需要是數組
* if(preg_grep("^[a-zA-Z][a-zA-Z0-9_]{3,19}@[0-9A-Za-z]{1,10}(.)(com|cn|net|com.cn)$", array($input)))
{
echo $email.'是符合條件的郵件地址';
}else
{
echo $email.'格式錯誤';
}
*/
if(ereg("^[a-zA-Z][a-zA-Z0-9_]{3,9}@[0-9a-zA-Z]{1,10}(.)(com|cn|com.cn|net)$",$email))
{
echo $email."符合格式規范";
}
else
{
echo $email.'格式錯誤';
}
}
$email = "";
isEmail($email);
?>