正則驗證郵箱php
㈠ php用正則表達式做注冊頁面
// 定義正則表達式
$username_pattern = "/^[a-zA-Z0-9_-]{3,16}$/"; // 用戶名必須是 3-16 位英文字母、數字、下劃線或短橫線
$password_pattern = "/^[a-zA-Z0-9_-]{6,18}$/"; // 密碼必須是派豎型 6-18 位英文字母、數字、下劃線或短橫線
$email_pattern = "/^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$/"; // 郵箱必須符合常規格式
// 獲取表單數據
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
// 驗證用戶名
if (!preg_match($username_pattern, $username)) {
echo "用戶名不合法";
exit;
}
// 驗證密碼塵猜
if (!preg_match($password_pattern, $password)) {
echo "密碼不合法";
exit;
}
// 驗證郵箱
if (!preg_match($email_pattern, $email)) {
echo "郵箱不合法";
exit;
}
// 如果所有表單數據都合法,就將數據纖老插入資料庫或執行其他操作
上述代碼中,使用了 PHP 的 preg_match 函數來進行正則表達式匹配。如果正則表達式匹配成功,函數返回 1,否則返回 0。通過判斷返回值來確定表單數據是否合法。
當然,這只是一個示例,具體的正則表達式和表單驗證邏輯需要根據實際情況進行調整。
㈡ 正則表達式如何驗證郵箱
1. PHP 郵箱驗證正則表達式:
preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email );
如果需要更加完善、嚴格的驗證,修改這個正則表達式即可。
2. PHP 郵箱驗證正則表達式實例:
<?php
function isEmail($email){
if(preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email )){
return '是郵箱';
} else{
return '不是郵箱';
}
}
?>
3. javascript(js) 郵箱驗證正則表達式:
myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/;
這個可以驗證 形如:[email protected] ,[email protected] 這槐襪種郵箱
4. Javascript(js) 郵箱驗證正則表達跡哪式實例:姿明碼
<script type="text/javascript">
function isEmail(val){
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/;
if(!myreg.test(val))
return '不是郵箱';
return '是郵箱';
};
alert( isEmail('[email protected]') );
</script>
㈢ 如何驗證郵箱
途徑一:注冊時聯系方式選擇郵箱輸入常用的郵箱地址後,點擊「免費發送驗證碼」按鈕,系統會發送一封驗證碼郵件到您郵箱上。驗證郵件頁面途徑二:進入「我的課堂—>我的信息—>基本信息」,完成郵箱驗證輸入常用的郵箱地址後,點擊「驗證」按鈕,系統會發送一封驗證鏈接郵件到您郵箱上完善信息頁面完善信息頁面驗證郵箱登錄郵箱,找到「愛學網驗證郵箱信息」,點擊郵件中的驗證鏈接。
㈣ 郵箱正則表達式+正則基本知識點
一般程序員的姿勢
正則表達式正確的運用姿勢
今天來搞幾個郵箱正則表達式,匹配多級域名,包括中文域名
從上圖可以得出,除去「.」號,域名既有英文(最多是6個字元),也有中文(最多是3個漢字)
而現在有很多影子郵箱/百變郵箱,是使用二級域名或者三級域名,所以,我們先列舉如下幾個郵箱,然後寫一個正則表達式,去匹配、判斷
不管是什麼郵箱,確定會有的字元是「@」和至少一個「.」(這里特指最後一個),那麼我們就以這兩個確定的符號為分界點,將每個郵箱拆分成3段,對每一段進行正則匹配,最終組成整個郵箱的正則匹配。當然進入下一步之前,先理一理基本知識點。
定義:一個正則可以匹配的字元串的長度不是固定的,使用量詞可以達到這種目的。
量詞:比如{m , n} :表示連續出現最少 m 次,最多 n 次;跟在一個字元的後面就表示對該字元的限定。
比如郵箱的校驗:/^w+@[a-z0-9]+.[a-z]{2,4}$/,寫在了[a-z]後面,表示可以有2到4位的字母
又比如手機號的校驗: /^1[3456789]d{9}$/,跟在了d後面,表示需要出現9個數字
對於量詞的總結:
定義:正則匹配的字元串對於某一位置上的字元來說,它可以有多種可能,不局限於某一類型,使用字元組可以達到這種目的。
字元組:比如[abc],表示該字元是可以字元 "a"、"b"、"c" 中的任何一個。對於這一位置來說,我們可以有3種可能性。
比如手機號的校驗: /^1[3456789]d{9}$/,它在第二個位置,根據一般手機運營商來說,提供手機第二位的數字可以是3到9的任意一個,才符合規范。
如果字元組里表示的字元特別多,可以使用范圍表示法,用連字元-來省略和縮寫。
比如郵箱的校驗:/^w+@[a-z0-9]+.[a-z]{2,4}$/,它跟在@後面,根據我們郵箱的規范可知,@後面的 [a-z0-9]+ 表示:數字0到9和字母a-z中的至少一個字元
這里簡單解析一下:
對於js正則: ([a-z]{2,6}|[u2E80-u9FFF]{2,3})
js正則的中文漢字正則表達式來源於手冊: https://tool.oschina.net/uploads/apidocs/jquery/regexp.html
對於php正則: ([a-z]{2,6}|[x7f-xff]{6,9})
在utf-8編碼中,用ASCII碼表中的第128~255編碼中的3個編碼表示一個漢字,這里用十六進製表示
驗證一下:
運行結果:
運行結果
全部通過
當然,php正則匹配郵箱,還可以這樣子
原理與 /^w+@([da-z.-]+).([a-z]{2,6}|[x7f-xff]{6,9})/ 類似。
最後,上面的幾個正則表達式是居於當前市面上現存的域名進行匹配的,下面提供幾個更加寬松的郵箱正則匹配
原理都相似,可以對照理解下。如有誤,歡迎留言區批評指正。
㈤ PHP正則表達式如何檢測現有的正確郵箱域名後綴
這個是IT群里的朋友!我不去群里了,在這里幫你把問題解決了吧!
其實嚴格說來,正則表達式只是一個模型匹配,所以直接使用模型匹配時我們有一個高通原理,也就是說匹配出來的內容是要大於你所需要的內容。就比此題來說,後邊可以匹配任何一個合規則的內容,而不可能精確地直接是你想要的內容——這就是高通,如果非要匹配到你想要的內容,使用正則運算有時是非常不合適的!所以這里不建議你使用這方式,或者是部分使用這種方式的形式。
高通就是通過你不全是你想要的,但你想要的一定全在里邊。
那麼,為什麼不考慮使用ajax的方式呢?後台自己設計一會資料庫,@前半段使用正則表這式,扣後半段直接使用數據存儲的內容,這樣可以精確到任何一個你想要的。
因為這里你想要的與不想要的其實也很模糊,你也不知道ckk這個域名在以後是不會被啟用!那麼你可以使用資料庫方式,由管理員自由添加!不用去修改那將來的表達式的!
但事實上很少人用這種方式——他們都在使用注冊時郵箱認證的方式,也就是說,發到你郵箱里一封信,輔助你完成注冊,這種情況雖然是高通,其他實他只是方便用戶能輸入正確,而不是要的確信數據,任何設計都要記著這句話——任何客戶端的信息都是不可信的!就算用JS完成了正則,那麼如果對方有意屏掉您的JS這十分容易的!所以你的正則根本不是用來驗證,而是方便用戶。
正是這種原因,高通的理由也是其存在的一個原因!就算使用了我說的資料庫,利用ajax來檢查,那麼別人照樣可以讓你的ajax不工作,而且,不是伺服器通過了,郵箱就一定有人注冊的!所以從這方面上來講,資料庫的實現意義也不大!
根據js的特點,客戶端的驗證沒有必要太這於麻煩,就算是服務端的驗證,建議你的也只採用這種方式即可。沒有使用資料庫的必要的——這個代價與達到的效果是不成比例的!
說完了,其實等於我也不解決!
㈥ PHP 幫忙寫個正則表達式 判斷QQ郵箱格式
$qqmail='[email protected]';
if(preg_match('|^[1-9]d{4,10}@qq.com$|i',$qqmail)){
echo$qqmail,'是qq郵箱';
}else{
echo$qqmail,'不是qq郵箱';
}
㈦ php驗證郵箱格式
PHP正則表達式驗證郵箱示例如下:
<?php
$email='[email protected]';
$pattern="/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";
if(preg_match($pattern,$email)){
echo '郵箱驗證通過!';
} else{
echo '郵箱格式錯誤!';
}
?>
㈧ 求php中郵箱地址正則表達式
$pattern = "/^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$/i";
if(preg_match($pattern,$email))
{
echo "郵箱正確";
}
㈨ php正則表達式怎麼驗證郵箱格式
郵箱驗證正則:
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
直接用preg_match ()就行了
推薦直接用bootstrapvalidate,更方便。
㈩ 對php中正則表達式驗證郵箱代碼的疑惑,求高人指點
^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$
這個正則表達式的寫法是正確的,但是郵箱地址最後小數點後面的字母只能是2或者3位,比如com或者cn,你的例子aaaaaa太多了,呵呵
[a-z]{2,3}$這個表示結尾只能是2或者3位字母,不是至少2位
z後面那個減號,那個表示中橫杠,比如用戶名字是aaa-aaa
如果用你舉得例子
可以寫成
^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{1,20}$
這樣表示結尾的字母可以是1到20位