邮箱验证代码大都是不能验证一个字母的域名或一个字母的用户名,如:i@phpfensi.com 或 i@phpfensi.net,解决方法如下:
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 '<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"不是邮箱地址!";
- }
- ?>