邮箱验证代码大都是不能验证一个字母的域名或一个字母的用户名,如:i@fufuok.com 或 fufu@9.cn 。解决方法如下:
1,不做总长度判断,长度判断可以自己加上;
2,支持.net.cn,.com.cn这样的域名后缀;
3,邮箱名部分以字母或者数字开头,中间可以有“-”与“_”符号;
4,域名部分以字母或者数字开头,中间可以有“-”与“_”符号;
PHP 邮箱验证正则表达式
代码如下 |
复制代码 |
preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email ); |
实例
代码如下 |
复制代码 |
/** * 自己修整的一个邮箱正则表达式 * 琼台博客 */ echo ''; 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 '邮箱格式错误'; } |
邮箱验证类
代码如下 |
复制代码 |
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 ""; } else { echo ""; } } } $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"不是邮箱地址!"; } ?> |
教程链接:
随意转载~但请保留教程地址★