php與javascript郵箱驗證實現程式

來源:互聯網
上載者:User

郵件的正確格式為:  使用者名稱+@+伺服器名+ . +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}$/;
var e=form1.email.value;//擷取表單form1中email的值
if(e!=null && e.trim().length<=0){
if(!re.test(e))
{
alert("Sorry,你輸入的Email不合法!");
}
}

String.prototype.trim=function() { return this.replace(/(^s*)|(s*$)/g,""); } //去掉Null 字元,這個函數可以去掉左右兩邊的Null 字元

便例2

 代碼如下 複製代碼

<script language="Javascript1.2">
     <!-- start hiding
     function verifyAddress(obj)
     {
      var email = obj.email.value;
      var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
      flag = pattern.test(email);
      if(flag)
      {
       alert("Your email address is correct!");
       return true;
      }
      else
       {
        alert("Please try again!");
        return false;
        }
      }
     // stop hiding -->
    </script>
   </head>
   <body>
   <form onSubmit="return verifyAddress(this);">
   <input name="email" type="text"/>
   <input type="submit"/>
   </form>
  </body>
 </html>


php郵箱驗證代碼:

 代碼如下 複製代碼

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

return (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$",$mailAddr)) ? false : true;

}

php執行個體2

 代碼如下 複製代碼

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


例3

 代碼如下 複製代碼

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


構造檢查email的Regex
在一個完整的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了
Regex的其他用法
提取字串
ereg() and eregi() 有一個特性是允許使用者通過Regex去提取字串的一部分(具體用法你可以閱讀手冊)。比如說,我們想從 path/URL 提取檔案名稱,下面的代碼就是你需要:
ereg("([^\/]*)$", $pathOrUrl, $regs);
echo $regs[1];
進階的代換
ereg_replace() 和 eregi_replace()也是非常有用的,假如我們想把所有的間隔負號都替換成逗號:
ereg_replace("[ nrt]+", ",", trim($str));
最後,我把另一串檢查EMAIL的Regex讓看文章的你來分析一下:
"^[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+.'.'[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+$

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.