1,不做總長度判斷,長度判斷可以自己加上;
2,支援.net.cn,.com.cn這樣的網域名稱尾碼;
3,郵箱名部分以字母或者數字開頭,中間可以有“-”與“_”符號;
4,網域名稱部分以字母或者數字開頭,中間可以有“-”與“_”符號;
PHP 郵箱驗證Regex
代碼如下 |
複製代碼 |
preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email ); |
執行個體
代碼如下 |
複製代碼 |
/** * 自己修整的一個郵箱Regex * 瓊台部落格 */ echo '<meta charset="utf-8" />'; function c_email($email){ $reg='/^([a-zA-Z0-9]{1,20})(([_-.])?([a-zA-Z0-9]{1,20}))*@([a-zA-Z0-9]{1,20})(([-_])?([a-zA-Z0-9]{1,20}))*(.[a-z]{2,4}){1,2}$/'; if(preg_match($reg,$email)) return true; return false; } $email = 'mail@lizhong.me'; $check_result = c_email($email); if($check_result){ echo '郵箱格式正確'; }else{ echo '郵箱格式錯誤'; } |
郵箱驗證類
代碼如下 |
複製代碼 |
<?php class Reg { public $mail; function __construct() { $this->mail = $_POST["mail"]; } function RegMail() { if(preg_match("/^[0-9a-zA-Z]+(?:[_-][a-z0-9-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*.[a-zA-Z]+$/i", $this->mail)) { echo "<script language='javascript'>alert('驗證成功')</script>"; } else { echo "<script language='javascript'>alert('驗證失敗')</script>"; } } } $r = new Reg(); $r->RegMail(); $strings = "abc@163.com"; if(preg_match("/^[0-9a-zA-Z]+(?:[_-][a-z0-9-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*.[a-zA-Z]+$/i",$strings)) { echo"驗證成功!是郵箱地址。"; } else { echo"不是郵箱地址!"; } ?> |