email 正規表示式

2021-06-20 09:05:38 字數 3097 閱讀 7395

1、

email正規表示式:/^[a-za-z0-9_\.]+@[a-za-z0-9-]+[\.a-za-z]+$/

2、根據

(1)email字首規則:

英文26個字母、10個阿拉伯數字、點、減號或下劃線組成,只能以數字或字母開頭和結尾

(2)網域名稱命名規則:

英文26個字母、10個阿拉伯數字、減號組成,只能以數字或字母開頭和結尾,總共不能超過63個字元

得:網域名稱拆解成:(a-b.)+和a兩段

<?php

class isemail[a-z0-9]+$",$str))else}}

$isemail=new isemail;

if($isemail->run("[email protected]")==false)

?>

3、code:

1. < ?php 

2.    if (ereg(「/^[a-z]([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]([\.][a-z])?$/i; 」,$email)) 

4.    else 

7. ?>

國際網域名稱格式如下: 

網域名稱由各國文字的特定字符集、英文本母、數字及「-」(即連字元或減號)任意組合而成, 但開頭及結尾均不能含有「-」,「-」不能連續出現 。 網域名稱中字母不分大小寫。網域名稱最長可達60個位元組(包括字尾.com、.net、.org等)。 

/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]([\.][a-z])?$/i; 

/內容/i 構成乙個不區分大小寫的正規表示式; 

^ 匹配開始 

$ 匹配結束 

[a-z] e-mail字首必需是乙個英文本母開頭 

([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字元,也是匹配的,*表示0個或者多個。 

*表示0個或多個前面的字元. 

[a-z0-9]* 匹配0個或多個英文本母或者數字 

[-_]? 匹配0個或1「-」,因為「-」不能連續出現 

[a-z0-9]+ 匹配1個或多個英文本母或者數字,因為「-」不能做為結尾 

@ 必需有個有@ 

([a-z0-9]*[-_]?[a-z0-9]+)+ 見上面([a-z0-9]*[-_]?[a-z0-9]+)*解釋,但是不能為空,+表示乙個或者為多個。 

[\.] 將特殊字元(.)當成普通字元 

[a-z] 匹配2個至3個英文本母,一般為com或者net等. 

([\.][a-z])? 匹配0個或者1個[\.][a-z](比如.cn等) 我不知道一般.com.cn最後部份是不是都是兩位的,如果不是請修改為 

完美e-mail正規表示式,附詳細講解,請大家幫忙測試一下! 2.抽取字串中的email: 

<?php 

function getemail($str) ([\.][a-z])?/i"; 

preg_match_all($pattern,$str,$emailarr); 

return $emailarr[0]; 

} $emailstr = "俺不是公尺vi地方就開iid郵件列表: 和;.;;,"; 

$emailarr = getemail($emailstr); 

echo "

"; 

print_r($emailarr); 

echo "

"; 

?> 

列印如下: 

array 

( [0] => 

[1] => 

[2] => 

[3] => 

[4] => 

) 3.比較:第2裡的正則裡沒有了第1的^和$; 

4、相信學過php的人都應該知道下面這段用於eamil校驗的語句,但是真正能看懂的就不多了:

以下為引用的內容:

<?php 

if (eregi("^[_.0-z-]+@([0-z][0-z-]+.)+[a-z]$",$email))  

?>

在這句話裡,首先是應用了乙個eregi函式,這個函式還算好理解。隨便找本書,就能給你一

段解釋:

語法: int eregi(string pattern, string string, array [regs]); 

返回值: 整數/陣列

本函式以 pattern 的規則來解析比對字串 string。

比對結果返回的值放在陣列引數 regs 之中,regs[0] 內容就是原字串 string、regs[1]

為第乙個合乎規則的字串、regs[2] 就是第二個合乎規則的字串,餘類推。若省略引數

regs,則只是單純地比對,找到則返回值為 true。

而不太好理解的就是前面的這段正規表示式了:^[_.0-z-]+@([0-z][0-z-]+.)+[a-z]$ 

在這段正規表示式中,「+」表示前面的字串連續出現乙個或多個;「^」表示下乙個字串

必須出現在開頭,「$」表示前乙個字串必須出現在結尾;

「.」也就是「.」,這裡「」是轉義符;「」表示前面的字串可以連續出現2-3次。「()」

表示包含的內容必須同時出現在目標物件中。「[_.0-z-]」表示包含在「_」、「.」、

「-」、從a到z範圍內的字母、從0到9範圍內的數字中的任意字元;

這樣一來,這個正規表示式可以這樣翻譯: 

「下面的字元必須在開頭(^)」、「該字元必須包含在「_」、「.」、「-」、從a到z範圍內

的字母、從0到9範圍內的數字中([_.0-z-])」、「前面這個字元至少出現一次(+)」、

@、「該字串由乙個包含在從a到z範圍內的乙個字母、從0到9範圍內的數字中的字元開頭,

後面跟至少乙個包含在「-」、從a到z範圍內任何乙個字母、從0到9範圍內任何乙個數字中的

字元,最後以.結束(([0-z][0-z-]+.))」、「前面這個字元至少出現一次(+)」、「從a

到z範圍內的字母出現2-3次,並以它結束([a-z]$)」 。很繁雜,正因為這樣,人們才使

用正規表示式。

email正規表示式

說到正規表示式,網上有很多的通用的表示式,可是事實上說來,一般人的都 不願意去拿來研究,就是拿來就直接用就行了.可是,事實上,可能有些時候,專案中或公司裡的實際情況不一樣,得要修改一下正規表示式的,根據實際情況來定 制,這就需要我們來認真學習正規表示式的一些寫法,拿來主義,在讓我們享受豐富的網路共享...

email正規表示式

說到正規表示式,網上有很多的通用的表示式,可是事實上說來,一般人的都 不願意去拿來研究,就是拿來就直接用就行了.可是,事實上,可能有些時候,專案中或公司裡的實際情況不一樣,得要修改一下正規表示式的,根據實際情況來定 制,這就需要我們來認真學習正規表示式的一些寫法,拿來主義,在讓我們享受豐富的網路共享...

email正規表示式

一般的email,形如scc 163.com,abc sina.com.cn這樣一些常用的形式就行了,但是卻有一些zhangshna.mr 163.com,abc wang.dd sian.com,abc wang.dd.cc sian.com 這種類似的形式,在 符號之前還有點.原來是拿來就用,可...