正則表達(dá)式--QQ微信、優(yōu)酷前端 郵箱正則表達(dá)式驗(yàn)證 Bug
拿郵箱驗(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è)字母的頂級(jí)域名提供郵箱服務(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í)例:
<?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) 郵箱驗(yàn)證正則表達(dá)式:
myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/;
這個(gè)可以驗(yàn)證 形如:i@julying.com ,i@i.com 這種郵箱
--------------------------------------------------------------------------------
Javascript(js) 郵箱驗(yàn)證正則表達(dá)式 新手實(shí)例:
<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>
- JavaScript 正則表達(dá)式使用詳細(xì)參數(shù)
- JavaScript 正則表達(dá)式解析
- javascript RegExp對(duì)象(正則表達(dá)式)
- JavaScript 正則表達(dá)式 驗(yàn)證整數(shù)、小數(shù)、實(shí)數(shù)、有效位小數(shù)最簡單
- JavaScript 表單驗(yàn)證正則表達(dá)式大全[推薦]
- JavaScript RegExp 正則表達(dá)式對(duì)象詳細(xì)說明
- JavaScript基于正則表達(dá)式的數(shù)字判斷函數(shù)
- 重溫JavaScript中的正則表達(dá)式 js學(xué)習(xí)筆記
- javascript中匹配價(jià)格的正則表達(dá)式
- javascript中使用正則表達(dá)式實(shí)現(xiàn)刪除字符串中的前后空格
- 經(jīng)典Javascript正則表達(dá)式[優(yōu)質(zhì)排版]
- JavaScript正則表達(dá)式驗(yàn)證中文實(shí)例講解
- javascript正則表達(dá)式基礎(chǔ)篇
- javascript中使用正則表達(dá)式進(jìn)行字符串驗(yàn)證示例
- 如何使用JavaScript和正則表達(dá)式進(jìn)行數(shù)據(jù)驗(yàn)證
- javascript中正則表達(dá)式反向引用示例介紹
- java正則表達(dá)式表單驗(yàn)證類工具類(驗(yàn)證郵箱、手機(jī)號(hào)碼、qq號(hào)碼等)
- 如何實(shí)現(xiàn)正則表達(dá)式的JavaScript的代碼高亮
- JavaScript中的正則表達(dá)式使用及驗(yàn)證qq號(hào)碼的正則
相關(guān)文章
notepad、editplus等軟件常用的文本整理正則表達(dá)式
這篇文章主要介紹了notepad、editplus等軟件常用的文本整理正則表達(dá)式,本文講解了匹配空行、所有空行、空格、換行、2個(gè)以上的空格等正則,需要的朋友可以參考下2015-04-04正則刪除字符串左、右或兩端的空格經(jīng)驗(yàn)總結(jié)
我們經(jīng)常需要獲取文本框中用戶輸入的信息,然后通過ajax或form提交到后臺(tái),數(shù)據(jù)中難免要包含一些空格,因此我們有必要在將數(shù)據(jù)傳輸?shù)胶笈_(tái)之前,消除數(shù)據(jù)兩端的空格,看一看希望可以幫助到你2013-03-03正則表達(dá)式 學(xué)習(xí)參考 推薦入門者看
正則表達(dá)式(Regular Expression)是一種匹配模式,描述的是一串文本的特征。他可以實(shí)現(xiàn)一些可變字符的替換。2009-07-07JS中的正則表達(dá)式及pattern的注意事項(xiàng)
本文給大家介紹js中的正則表達(dá)式的注意事項(xiàng)以及pattern的注意事項(xiàng),需要的小伙伴可以參考下本篇文章2015-10-10asp正則表達(dá)式匹配數(shù)字$數(shù)字$數(shù)字$
用asp實(shí)現(xiàn)的匹配:數(shù)字$數(shù)字$數(shù)字$...... 的正則2008-04-04手把手教你使用正則表達(dá)式驗(yàn)證銀行帳號(hào)
銀行卡號(hào)是一大串的數(shù)字,當(dāng)然具有一定的規(guī)則,下面這篇文章主要給大家介紹了關(guān)于使用正則表達(dá)式驗(yàn)證銀行帳號(hào)的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下2023-03-03