久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

EMAIL校驗 正則 討論 求解

 Jlinhai 2011-11-18


為了找實習(xí)開始學(xué)習(xí)PHP,因為學(xué)過C和PERL,,所以練習(xí)了一個hello world后就開始伴隨著google用PHP做網(wǎng)頁了,,現(xiàn)在做個
幾個網(wǎng)站后,發(fā)現(xiàn)自己還沒有系統(tǒng)得學(xué)習(xí)過PHP,,于是找了本書開始從頭細致地學(xué)習(xí),。昨天看到正則,想和大家討論一下,。

校驗是正則用得最多的地方,,這是我一年前寫的EMAIL有效性校驗代碼:(見笑了,那時候是只知道正則的基本)
  1. function IsMailValid  ( $mail ){
  2. $model = "(^[a-z])((([a-z0-9])*(\.|-|_)?){0,})@(([_a-z0-9-]{2,})\.){1,}([a-z]{2,4}$)";
  3. if (eregi($model, $mail)) {
  4.   echo "[$mail]  valide<br />";
  5.   return true;
  6. }
  7. else{
  8.   echo "[$mail]  invalide<br />";
  9.   return false;
  10. }
  11. }
復(fù)制代碼


當(dāng)時覺得能用就可以了,現(xiàn)在看來太低級,,就想按照書里的提示修正一下,。
書里是這樣寫的:^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-.]+$
我能看懂這個正則,校驗的不是很好,但是比較簡明,我就想吸收過來改進我的代碼.
首先試驗了一下,,卻發(fā)現(xiàn)有warning,結(jié)果也不對.
研究了一下,發(fā)現(xiàn)是因為在方括號里寫了"\-"的關(guān)系,難道在方括號里"-"可以不用"\"?
如果去掉,代碼可以用,但是EMAIL里就不能用"-".
于是把"-"前的"\"去掉,正則是這樣
$model = "^[a-zA-Z0-9_-.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$";
還是有warning,結(jié)果也錯誤.但是改成這樣
$model = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$";
結(jié)果就完全正確了.
發(fā)現(xiàn)差別了么?就是把-放到方括號的最后,然后又進行了幾個試驗,一下幾種正則都正確.
[a-zA-Z0-9_.-]+
[a-zA-Z0-9._-]+
[._a-zA-Z0-9-]+
[a-zA-Z0-9.-_]+        這個正確,但是a<[email protected]也被校驗為正確
這個 [._a-zA-Z0-9\-]+ 也正確,但是a\[email protected]也被校驗為正確.
看來-放前放后還有講究呢

到此,第一步完畢,得到的經(jīng)驗:
正則中方括號里-不用加\,但是要放到最后,在圓括號中.加\不加\效果一樣,但是在方括號里不能加\

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多