常用email校驗語句的解釋

2021-03-31 08:56:58 字數 1209 閱讀 6776

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

php**:

<?php

if (

eregi("^

[_.0-9a-z-

]+@(

[0-9a-z

][0-9a-z-

]+.)+

[a-z]$"

,$email

))

?>

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

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

返回值: 整數/陣列

本函式以 pattern 的規則來解析比對字串 string。比對結果返回的值放在陣列引數 regs 之中,regs[0] 內容就是原字串 string、regs[1] 為第乙個合乎規則的字串、regs[2] 就是第二個合乎規則的字串,餘類推。若省略引數 regs,則只是單純地比對,找到則返回值為 true。

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

在這段正規表示式中,「+」表示前面的字串連續出現乙個或多個;「^」表示下乙個字串必須出現在開頭,「$」表示前乙個字串必須出現在結尾;「.」也就是「.」,這裡「」是轉義符;「」表示前面的字串可以連續出現2-3次。「()」表示包含的內容必須同時出現在目標物件中。「[_.0-9a-z-]」表示包含在「_」、「.」、「-」、從a到z範圍內的字母、從0到9範圍內的數字中的任意字元;

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

「下面的字元必須在開頭(^)」、「該字元必須包含在「_」、「.」、「-」、從a到z範圍內的字母、從0到9範圍內的數字中([_.0-9a-z-])」、「前面這個字元至少出現一次(+)」、@、「該字串由乙個包含在從a到z範圍內的乙個字母、從0到9範圍內的數字中的字元開頭,後面跟至少乙個包含在「-」、從a到z範圍內任何乙個字母、從0到9範圍內任何乙個數字中的字元,最後以.結束(([0-9a-z][0-9a-z-]+.))」、「前面這個字元至少出現一次(+)」、「從a到z範圍內的字母出現2-3次,並以它結束([a-z]$)」

很繁雜是吧,對了,正因為這樣,人們才使用正規表示式。

怎麼快速對DB裡的所有email進行校驗

由於業務上的需求,重新改寫了校驗email的正規表示式,同時db裡又遷移了其他資料庫的資料,現在需要重新對db裡的所有email再校驗一次,以排除掉不合法的email。db裡的資料很多,手動去乙個個校驗的做法顯然是不靠譜的,這種機械的重複性操作,自然是要用程式來解決才是最簡易的。首先是將db裡所有的...

開發常用 校驗表單 賬號的校驗

要求 必填,僅支援數字字母下劃線組合,不支援特殊字元,賬號長度應為6 20 html js 引入 validate.js import validate from utils validate validate.js檔案內容 檢查賬號是否合法,只允許字母數字下劃線組合 function checka...

開發常用 校驗表單 密碼的校驗

要求 必填,密碼應為8 20位字元,必須包含數字 字母 下劃線中的兩種以上 validate.js檔案內容 檢查密碼是否合法 function checkpwd userpassword if userpassword.length 20 userpassword.length 8 if 0 9 g...