国产探花免费观看_亚洲丰满少妇自慰呻吟_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> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昆明市| 平潭县| 靖江市| 丰台区| 信宜市| 香港| 郧西县| 上蔡县| 乐平市| 武强县| 从化市| 富顺县| 武山县| 华容县| 色达县| 新源县| 玉田县| 普兰店市| 定远县| 石林| 江安县| 图们市| 抚远县| 永宁县| 闸北区| 南丰县| 灌云县| 汝州市| 化德县| 磐石市| 剑川县| 徐水县| 麻栗坡县| 贵南县| 且末县| 曲周县| 青田县| 梁河县| 运城市| 东兰县| 曲麻莱县|