拿郵箱驗(yàn)證來說,網(wǎng)上絕大部分人寫的郵箱驗(yàn)證正則表達(dá)式代碼都不能驗(yàn)證這郵箱:
i@julying.com,也不能驗(yàn)證 xxxxxx@i.com 。
上次我發(fā)現(xiàn)youku.com(優(yōu)酷網(wǎng))用戶注冊就有這個(gè)問題,見圖:
|
|
|
|
|
|
|
|
|
今天發(fā)現(xiàn) QQ微信 也同樣有這個(gè)問題:
|
|
|
|
|
|
|
|
|
他們都不能驗(yàn)證一個(gè)字母的域名或一個(gè)字母的用戶名。
我認(rèn)為,他們絕不是故意不讓這樣的用戶注冊,而是這樣:
很久之前,最初寫正則的程序員偷懶了,沒有寫 這樣情況的正則表達(dá)式驗(yàn)證,
他當(dāng)時(shí)可能覺得這樣的正則比較麻煩,而且可能這樣的郵箱實(shí)在太少了,
沒有聽說一個(gè)字母的頂級域名提供郵箱服務(wù),也沒有見那個(gè)郵箱的用戶名是一個(gè)字母的,于是就沒寫。
而后來的程序員就一直沿用這個(gè)代碼。。。。。
-------------------
因?yàn)槌绦虿荒芴幚砦恢妙愋偷臄?shù)據(jù),比如 2003年網(wǎng)絡(luò)大面積爆發(fā) SQL 注入,就是一個(gè)經(jīng)典案例。
正如比爾蓋茨前輩說:用戶的所有輸入都是有害的,程序員要盡可能的驗(yàn)證所有可能性,否則,漏掉的可能性就是一個(gè)潛在的危機(jī)。
-------------------
我順便寫一個(gè)完整的郵箱驗(yàn)證正則表達(dá)式吧,以后不要搞這種錯(cuò)誤,讓人很郁悶。。
PHP 郵箱驗(yàn)證正則表達(dá)式:
preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email );
如果需要更加完善、嚴(yán)格的驗(yàn)證,修改這個(gè)正則表達(dá)式即可。
PHP 郵箱驗(yàn)證正則表達(dá)式 新手實(shí)例:
標(biāo)簽:宣城 西安 重慶 綿陽 無錫 長沙 泰州 銅川
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《正則表達(dá)式--QQ微信、優(yōu)酷前端 郵箱正則表達(dá)式驗(yàn)證 Bug》,本文關(guān)鍵詞 正則,表達(dá)式,--QQ,微信,優(yōu)酷,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。