本文目錄一覽:
PHP檢查判斷字符串是否是有效的Email郵箱地址
?php
$mail = ‘runoob@runoob.com’; //郵箱地址
$pattern = ‘/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i’; //正則表達式
preg_match($pattern, $mail, $matches);
var_dump($matches); //輸出匹配結果
?
菜鳥教程上這麼寫的,應該沒問題
php驗證email地址是否真實存在
真實存在?
要把正確的值,存在數據庫里,
通過讀數據庫來斷定是否真實存在
PHP正則表達式如何檢測現有的正確郵箱域名後綴?
這個是IT群里的朋友!我不去群里了,在這裡幫你把問題解決了吧!
其實嚴格說來,正則表達式只是一個模型匹配,所以直接使用模型匹配時我們有一個高通原理,也就是說匹配出來的內容是要大於你所需要的內容。就比此題來說,後邊可以匹配任何一個合規則的內容,而不可能精確地直接是你想要的內容——這就是高通,如果非要匹配到你想要的內容,使用正則運算有時是非常不合適的!所以這裡不建議你使用這方式,或者是部分使用這種方式的形式。
高通就是通過你不全是你想要的,但你想要的一定全在裡邊。
那麼,為什麼不考慮使用ajax的方式呢?後台自己設計一會數據庫,@前半段使用正則表這式,扣後半段直接使用數據存儲的內容,這樣可以精確到任何一個你想要的。
因為這裡你想要的與不想要的其實也很模糊,你也不知道ckk這個域名在以後是不會被啟用!那麼你可以使用數據庫方式,由管理員自由添加!不用去修改那將來的表達式的!
但事實上很少人用這種方式——他們都在使用註冊時郵箱認證的方式,也就是說,發到你郵箱里一封信,輔助你完成註冊,這種情況雖然是高通,其他實他只是方便用戶能輸入正確,而不是要的確信數據,任何設計都要記着這句話——任何客戶端的信息都是不可信的!就算用JS完成了正則,那麼如果對方有意屏掉您的JS這十分容易的!所以你的正則根本不是用來驗證,而是方便用戶。
正是這種原因,高通的理由也是其存在的一個原因!就算使用了我說的數據庫,利用ajax來檢查,那麼別人照樣可以讓你的ajax不工作,而且,不是服務器通過了,郵箱就一定有人註冊的!所以從這方面上來講,數據庫的實現意義也不大!
根據js的特點,客戶端的驗證沒有必要太這於麻煩,就算是服務端的驗證,建議你的也只採用這種方式即可。沒有使用數據庫的必要的——這個代價與達到的效果是不成比例的!
說完了,其實等於我也不解決!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/206826.html