国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Regex > 正文

正則表達式--QQ微信、優酷前端 郵箱正則表達式驗證 Bug

2020-03-16 21:10:54
字體:
來源:轉載
供稿:網友
但凡稍微有點資歷的程序員,都免不了要寫正則表達驗證算法。最近見到好幾個正則表達式的Bug,抽空寫出來
 
 

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

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

上次我發現youku.com(優酷網)用戶注冊就有這個問題,見圖:

 

 

 
 
 
 

正則表達式--QQ微信、優酷前端 郵箱正則表達式驗證 Bug

 
 
 
 

 

 

今天發現 QQ微信 也同樣有這個問題:

 

 

 
 
 
 

正則表達式--QQ微信、優酷前端 郵箱正則表達式驗證 Bug

 
 
 
 

 

 

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

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

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

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

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

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

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

因為程序不能處理位置類型的數據,比如 2003年網絡大面積爆發 SQL 注入,就是一個經典案例。

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

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

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

 

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> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万盛区| 长岭县| 新化县| 阿城市| 阿坝县| 桃江县| 益阳市| 工布江达县| 乐亭县| 河源市| 浦江县| 板桥市| 罗山县| 关岭| 南靖县| 广汉市| 安西县| 康平县| 弋阳县| 比如县| 西和县| 德惠市| 上虞市| 金山区| 洮南市| 刚察县| 德庆县| 闸北区| 日土县| 黄石市| 太谷县| 苏尼特左旗| 印江| 福清市| 汽车| 娄底市| 普安县| 朝阳县| 岱山县| 永嘉县| 当阳市|