A-A+

php与javascript邮箱验证实现程序

2016年01月28日 web前端设计 暂无评论 阅读 7 views 次

下面我来总结利用php与js分别对用户输入的邮箱地址进行验证,有需要学习的朋友可参考参考。

邮件的正确格式为:用户名+@+服务器名+ . +com/net/cn/org

注:

1、验证时要求用户名是大小字母或小写字母

2、用户名的后面要加上@

3、@后面要加服务器的名称。

4、服务名后面要加"点"即 .

5、最后以com net cn org

javascript邮箱验证代码:

  1. var re=/^([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,3}$/;  
  2. var e=form1.email.value;//获取表单form1中email的值  
  3. if(e!=null && e.trim().length<=0){  
  4. if(!re.test(e))  
  5. {  
  6. alert("Sorry,你输入的Email不合法!");  
  7. }  
  8. }  
  9. String.prototype.trim=function() { return this.replace(/(^s*)|(s*$)/g,""); } //去掉空字符,这个函数可以去掉左右两边的空字符  
  10.   
  11. //实例2:  
  12.    
  13. <script language="Javascript1.2">   
  14.      <!-- start hiding   
  15.      function verifyAddress(obj)   
  16.      {   
  17.       var email = obj.email.value;   
  18.       var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;   
  19.       flag = pattern.test(email);   
  20.       if(flag)   
  21.       {   
  22.        alert("Your email address is correct!");   
  23.        return true;   
  24.       }   
  25.       else   
  26.        {   
  27.         alert("Please try again!");   
  28.         return false;   
  29.         }   
  30.       }   
  31.      // stop hiding -->   
  32.     </script>   
  33.    </head>   
  34.    <body>   
  35.    <form onSubmit="return verifyAddress(this);">   
  36.    <input name="email" type="text"/>   
  37.    <input type="submit"/>   
  38.    </form>   
  39.   </body>   
  40.  </html>  

php邮箱验证代码:

  1. function CheckEmailAddr($mailAddr){return (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$",$mailAddr)) ? false : true;}function CheckEmailAddr($mailAddr) {  
  2. return (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$",$mailAddr)) ? false : true;  
  3. }  

php实例2,代码如下:

  1. <?php   
  2.    if (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+",$email)){   
  3.               echo "Your email address is correct!";}   
  4.    else{   
  5.               echo "Please try again!";   
  6.       }   
  7. ?>  

例3,代码如下:

  1. <?php  
  2. $email="gdygdy_007@163.com";   
  3. if (preg_match("/[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-z]{2,4}/",$email,$mail)){   
  4.     echo 'yes<br>';   
  5. }else{   
  6.     echo 'no<br>';   
  7. }   
  8. echo "$email??".$email."<>";   
  9. echo "$mail??".$mail;  
  10. ?>  

构造检查email的正则表达式

在一个完整的email地址中有三个部分:

1. 用户名 (在 '@' 左边的一切)

2.'@'

3. 服务器名(就是剩下那部分)

用户名可以含有大小写字母阿拉伯数字,句号('.')减号('-')and下划线'_')。服务器名字也是符合这个规则,当然下划线除外。

现在,用户名的开始和结束都不能是句点,服务器也是这样。还有你不能有两个连续的句点他们之间至少存在一个字符,好现在我们来看一下怎么为用户名写一个匹配模式:

^[_a-zA-Z0-9-]+$

现在还不能允许句号的存在。我们把它加上:

^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$

上面的意思就是说:以至少一个规范字符(除了.)开头,后面跟着0个或者多个以点开始的字符串。

简单化一点,我们可以用eregi()取代ereg()、eregi()对大小写不敏感,我们就不需要指定两个范围 "a-z" 和 "A-Z"只需要指定一个就可以了:

^[_a-z0-9-]+(.[_a-z0-9-]+)*$

后面的服务器名字也是一样,但要去掉下划线:

^[a-z0-9-]+(.[a-z0-9-]+)*$

好。现在只需要用"@"把两部分连接:

^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$

这就是完整的email认证匹配模式了,只需要调用:

eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$",$eamil)

就可以得到是否为email了

正则表达式的其他用法

提取字符串

ereg() and eregi() 有一个特性是允许用户通过正则表达式去提取字符串的一部分(具体用法你可以阅读手册)。比如说,我们想从 path/URL 提取文件名,下面的代码就是你需要:

ereg("([^\/]*)$", $pathOrUrl, $regs);

echo $regs[1];

高级的代换

ereg_replace() 和 eregi_replace()也是非常有用的,假如我们想把所有的间隔负号都替换成逗号:

ereg_replace("[ nrt]+", ",", trim($str));

最后,我把另一串检查EMAIL的正则表达式让看文章的你来分析一下:

"^[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+.'.'[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+$

给我留言