亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

正則表達式--QQ微信、優(yōu)酷前端 郵箱正則表達式驗證 Bug

 更新時間:2011年10月09日 14:57:51   作者:  
但凡稍微有點資歷的程序員,都免不了要寫正則表達驗證算法。最近見到好幾個正則表達式的Bug,抽空寫出來

拿郵箱驗證來說,網(wǎng)上絕大部分人寫的郵箱驗證正則表達式代碼都不能驗證這郵箱:

i@julying.com,也不能驗證 xxxxxx@i.com 。

上次我發(fā)現(xiàn)youku.com(優(yōu)酷網(wǎng))用戶注冊就有這個問題,見圖:

 

優(yōu)酷網(wǎng) 注冊 bug

 

今天發(fā)現(xiàn) QQ微信 也同樣有這個問題:

 

QQ微信 bug

 

他們都不能驗證一個字母的域名或一個字母的用戶名。

我認為,他們絕不是故意不讓這樣的用戶注冊,而是這樣:

很久之前,最初寫正則的程序員偷懶了,沒有寫 這樣情況的正則表達式驗證,

他當時可能覺得這樣的正則比較麻煩,而且可能這樣的郵箱實在太少了,

沒有聽說一個字母的頂級域名提供郵箱服務,也沒有見那個郵箱的用戶名是一個字母的,于是就沒寫。

而后來的程序員就一直沿用這個代碼。。。。。

-------------------

因為程序不能處理位置類型的數(shù)據(jù),比如 2003年網(wǎng)絡大面積爆發(fā) SQL 注入,就是一個經(jīng)典案例。

正如比爾蓋茨前輩說:用戶的所有輸入都是有害的,程序員要盡可能的驗證所有可能性,否則,漏掉的可能性就是一個潛在的危機。

-------------------

我順便寫一個完整的郵箱驗證正則表達式吧,以后不要搞這種錯誤,讓人很郁悶。。

 

PHP 郵箱驗證正則表達式:

preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email );

如果需要更加完善、嚴格的驗證,修改這個正則表達式即可。
PHP 郵箱驗證正則表達式 新手實例:

復制代碼 代碼如下:

<?php
function isEmail($email){
if(preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email )){
return '是郵箱';
} else{
return '不是郵箱';
}
}
?>

--------------------------------------------------------------------------------
Javascript(js) 郵箱驗證正則表達式:
myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/;
這個可以驗證 形如:i@julying.com ,i@i.com 這種郵箱
--------------------------------------------------------------------------------
Javascript(js) 郵箱驗證正則表達式 新手實例:
復制代碼 代碼如下:

<script type="text/javascript">
function isEmail(val){
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/;
if(!myreg.test(val))
return '不是郵箱';
return '是郵箱';
};
alert( isEmail('i@julying.com') );
</script>

相關文章

  • notepad、editplus等軟件常用的文本整理正則表達式

    notepad、editplus等軟件常用的文本整理正則表達式

    這篇文章主要介紹了notepad、editplus等軟件常用的文本整理正則表達式,本文講解了匹配空行、所有空行、空格、換行、2個以上的空格等正則,需要的朋友可以參考下
    2015-04-04
  • javascript正則表達式簡介

    javascript正則表達式簡介

    正則表達式就是一個用來描述字符模式的對象。它被用來在文本中執(zhí)行模式匹配(pattern-matching)以及”查找-替換”(search-and-replace)的任務。javascript中正則的風格類似Perl中正則的風格。
    2015-05-05
  • 正則刪除字符串左、右或兩端的空格經(jīng)驗總結

    正則刪除字符串左、右或兩端的空格經(jīng)驗總結

    我們經(jīng)常需要獲取文本框中用戶輸入的信息,然后通過ajax或form提交到后臺,數(shù)據(jù)中難免要包含一些空格,因此我們有必要在將數(shù)據(jù)傳輸?shù)胶笈_之前,消除數(shù)據(jù)兩端的空格,看一看希望可以幫助到你
    2013-03-03
  • java正則表達式徹底研究

    java正則表達式徹底研究

    從J2SE1.4起Java增加了對正則表達式的支持就是java.util.regex包
    2008-08-08
  • js正則表達式學習筆記

    js正則表達式學習筆記

    這篇文章為大家分享了一份很詳細的js正則表達式學習筆記,包括了理論知識和實例講解,結合實例對js正則表達式進行了學習,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 正則 捕獲組(capture group)

    正則 捕獲組(capture group)

    捕獲組就是把正則表達式中子表達式匹配的內(nèi)容,保存到內(nèi)存中以數(shù)字編號或手動命名的組里,方便后面引用
    2009-07-07
  • 正則表達式 學習參考 推薦入門者看

    正則表達式 學習參考 推薦入門者看

    正則表達式(Regular Expression)是一種匹配模式,描述的是一串文本的特征。他可以實現(xiàn)一些可變字符的替換。
    2009-07-07
  • JS中的正則表達式及pattern的注意事項

    JS中的正則表達式及pattern的注意事項

    本文給大家介紹js中的正則表達式的注意事項以及pattern的注意事項,需要的小伙伴可以參考下本篇文章
    2015-10-10
  • asp正則表達式匹配數(shù)字$數(shù)字$數(shù)字$

    asp正則表達式匹配數(shù)字$數(shù)字$數(shù)字$

    用asp實現(xiàn)的匹配:數(shù)字$數(shù)字$數(shù)字$...... 的正則
    2008-04-04
  • 手把手教你使用正則表達式驗證銀行帳號

    手把手教你使用正則表達式驗證銀行帳號

    銀行卡號是一大串的數(shù)字,當然具有一定的規(guī)則,下面這篇文章主要給大家介紹了關于使用正則表達式驗證銀行帳號的相關資料,文中給出了詳細的實例代碼,需要的朋友可以參考下
    2023-03-03

最新評論