php

[PHP] 正規表達式-如何判斷E-mail

像一般來說 e-mail應為
帳號@主機.主機名稱.網域

而帳號可能為0~9 a~z _ – . 組成的

所以正規表達式為[_.0-9a-z-]
而e-mail不太可能只有一個字 所以後面可以加上+ 來表示有一個字以上
可寫為這樣[_.0-9a-z-]+
而帳號必須在最前面 所以可以在前面加上^
^[_.0-9a-z-]+
所以e-mail可表示成
^[_.0-9a-z-]+@([0-9a-z-]+.)+[a-z]{2,3}$
後面[a-z]{2,3}$ 是網域 因為網域大多都是a-z組成 且只會有2 3個字數

而判斷方式就是要用採用布林值eregi(正規表達式,字串)來表示

============範例==================================
//檢查Email
if(empty($_POST[’email’])){
die(“親愛的{$_POST[‘username’]},您沒填Email呢!這樣不能和您聯絡喔!”);
}elseif(!eregi(“^[_.0-9a-z-]+@([0-9a-z-]+.)+[a-z]{2,3}$”,$_POST[’email’])) {
die(“親愛的{$_POST[‘username’]},您的Email有問題喔!這樣不能和您聯絡喔!”);
}

所以正規表達式為[_.0-9a-z-]
而e-mail不太可能只有一個字 所以後面可以加上+ 來表示有一個字以上
可寫為這樣[_.0-9a-z-]+
而帳號必須在最前面 所以可以在前面加上^
^[_.0-9a-z-]+
所以e-mail可表示成
^[_.0-9a-z-]+@([0-9a-z-]+.)+[a-z]{2,3}$
後面[a-z]{2,3}$ 是網域 因為網域大多都是a-z組成 且只會有2 3個字數

而判斷方式就是要用採用布林值eregi(正規表達式,字串)來表示

============範例==================================
//檢查Email
if(empty($_POST[’email’])){
die(“親愛的{$_POST[‘username’]},您沒填Email呢!這樣不能和您聯絡喔!”);
}elseif(!eregi(“^[_.0-9a-z-]+@([0-9a-z-]+.)+[a-z]{2,3}$”,$_POST[’email’])) {
die(“親愛的{$_POST[‘username’]},您的Email有問題喔!這樣不能和您聯絡喔!”);
}
=========================================================

Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)