成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

郵箱/郵件地址的正則表達(dá)式及分析(JavaScript,email,regex)

Miracle_lihb / 1501人閱讀

摘要:簡(jiǎn)言在做用戶注冊(cè)時(shí),常會(huì)用到郵箱郵件地址的正則表達(dá)式。另一個(gè)問(wèn)題是郵件用戶名不能包括中文。以上為三胖對(duì)郵箱址正則表達(dá)式的理解和分析,如有不足請(qǐng)大家予以指正。郵件地址正則表達(dá)式度空間

簡(jiǎn)言

在做用戶注冊(cè)時(shí),常會(huì)用到郵箱/郵件地址的正則表達(dá)式。本文列舉了幾種方案,大家可以根據(jù)自己的項(xiàng)目情況,選擇最適合的方案。

方案1 (常用)

規(guī)則定義如下:

以大寫(xiě)字母[A-Z]、小寫(xiě)字母[a-z]、數(shù)字[0-9]、下滑線[_]、減號(hào)[-]及點(diǎn)號(hào)[.]開(kāi)頭,并需要重復(fù)一次至多次[+]。

中間必須包括@符號(hào)。

@之后需要連接大寫(xiě)字母[A-Z]、小寫(xiě)字母[a-z]、數(shù)字[0-9]、下滑線[_]、減號(hào)[-]及點(diǎn)號(hào)[.],并需要重復(fù)一次至多次[+]。

結(jié)尾必須是點(diǎn)號(hào)[.]連接2至4位的大小寫(xiě)字母[A-Za-z]{2,4}。

利用以上規(guī)則給出如下正則表達(dá)式:

var pattern = /^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/;
測(cè)試結(jié)果:
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = false;
pattern.test("毛三胖@42du.cn") = false;

源碼及演示地址

方案1說(shuō)明

方案1是最常用的郵件正則表達(dá)式驗(yàn)證方案,也適合大多數(shù)的應(yīng)用場(chǎng)景。從以上測(cè)試可以看出,該表達(dá)式不支持.online及.store結(jié)尾的域名。如需兼容這類(lèi)域名(大于4位),調(diào)整正則結(jié)尾{2,4}的限制部分即可(例:{2,8})。另一個(gè)問(wèn)題是郵件用戶名不能包括中文。

方案2 (修訂方案1)

規(guī)則補(bǔ)充如下:

用戶名可以包括中文[u4e00-u9fa5]

域名結(jié)尾最長(zhǎng)可為8位{2,8}

更新后的正則表達(dá)式如下:

var pattern = /^([A-Za-z0-9_-.u4e00-u9fa5])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,8})$/;
測(cè)試結(jié)果:
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = true;
pattern.test("毛三胖@42du.cn") = true;

源碼及演示地址

方案3 (安全)

在手機(jī)驗(yàn)證碼出現(xiàn)之前,差不多郵箱驗(yàn)證是保證用戶唯一性的唯一條件。而臨時(shí)郵箱(也稱10分鐘郵箱或一次性郵箱)的出現(xiàn),則使得郵箱驗(yàn)證及帳戶激活這種機(jī)制失去了意義。而臨時(shí)郵箱的地址是不可枚舉的,我們只能才采取白名單的方式,只允許有限的郵箱域名通過(guò)驗(yàn)證。

根據(jù)方案1的補(bǔ)充如下規(guī)則:

郵箱域名只能是163.com,qq.com或者42du.cn。

給出正則表達(dá)式如下:

var pattern = /^([A-Za-z0-9_-.])+@(163.com|qq.com|42du.cn)$/;
測(cè)試結(jié)果:
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = false;
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = true;
pattern.test("[email protected]") = false;
pattern.test("毛三胖[email protected]") = false;

源碼及演示地址

方案3驗(yàn)證雖然能保證安全性,但是如果白名單太長(zhǎng)會(huì)造成模式字符串太長(zhǎng)。這時(shí)可以將郵箱域名白名單寫(xiě)成數(shù)組,利用正則表達(dá)式做初步驗(yàn)證,用白名單做域名的二次驗(yàn)證。

現(xiàn)給出郵箱驗(yàn)證函數(shù)如下:

var isEmail = function (val) {
    var pattern = /^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/;
    var domains= ["qq.com","163.com","vip.163.com","263.net","yeah.net","sohu.com","sina.cn","sina.com","eyou.com","gmail.com","hotmail.com","42du.cn"];
    if(pattern.test(val)) {
        var domain = val.substring(val.indexOf("@")+1);
        for(var i = 0; i< domains.length; i++) {
            if(domain == domains[i]) {
                return true;
            }
        }
    }
    return false;
}
// 輸出 true
isEmail("[email protected]");

上述isEmail()函數(shù)列舉了常用的11種郵箱域名,大家可以根據(jù)需要適當(dāng)補(bǔ)充或刪減。

以上為三胖對(duì)郵箱址正則表達(dá)式的理解和分析,如有不足請(qǐng)大家予以指正。

郵件地址正則表達(dá)式-42度空間

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93358.html

相關(guān)文章

  • 通過(guò)實(shí)例學(xué)習(xí)正則達(dá)式

    摘要:在正則表達(dá)式中被稱為元字符,它可以匹配除回車(chē)換行行分隔符和段分隔符以外的所有字符。點(diǎn)擊查看其他元字符。想要實(shí)際查看兩種模式的區(qū)別,可以將上方匹配的正則表達(dá)式的去掉再執(zhí)行,看看返回結(jié)果有何不同。 判斷郵箱是否正確 郵箱正則 /w+[w.]*@[w.]+.w+/ 測(cè)試用例 const regex = /w+[w.]*@[w.]+.w+/ regex.test([email protected])...

    NervosNetwork 評(píng)論0 收藏0
  • 正則達(dá)式多語(yǔ)言操作指南

    摘要:能匹配中的,但不能匹配中的數(shù)量界定符符號(hào)定義是一個(gè)非負(fù)整數(shù)。則等價(jià)于和均為非負(fù)整數(shù),其中。該方法接受一個(gè)正則表達(dá)式作為它的第一個(gè)參數(shù)。是一個(gè)非強(qiáng)制異常類(lèi),它表示一個(gè)正則表達(dá)式模式中的語(yǔ)法錯(cuò)誤。 正則表達(dá)式及多語(yǔ)言操作指南 1. 正則表達(dá)式 正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)規(guī)則字符串,這個(gè)規(guī)則字符串用來(lái)表達(dá)對(duì)字符串的一...

    ingood 評(píng)論0 收藏0
  • 正則達(dá)式多語(yǔ)言操作指南

    摘要:能匹配中的,但不能匹配中的數(shù)量界定符符號(hào)定義是一個(gè)非負(fù)整數(shù)。則等價(jià)于和均為非負(fù)整數(shù),其中。該方法接受一個(gè)正則表達(dá)式作為它的第一個(gè)參數(shù)。是一個(gè)非強(qiáng)制異常類(lèi),它表示一個(gè)正則表達(dá)式模式中的語(yǔ)法錯(cuò)誤。 正則表達(dá)式及多語(yǔ)言操作指南 1. 正則表達(dá)式 正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)規(guī)則字符串,這個(gè)規(guī)則字符串用來(lái)表達(dá)對(duì)字符串的一...

    xzavier 評(píng)論0 收藏0
  • 正則達(dá)式規(guī)則應(yīng)用

    摘要:第三階段常見(jiàn)對(duì)象的學(xué)習(xí)正則表達(dá)式一正則表達(dá)式概述簡(jiǎn)單概述就是符合一定規(guī)則的字符串常見(jiàn)規(guī)則字符字符。舉例表示字符反斜線字符。 第三階段 JAVA常見(jiàn)對(duì)象的學(xué)習(xí) 正則表達(dá)式 (一) 正則表達(dá)式概述 (1) 簡(jiǎn)單概述 就是符合一定規(guī)則的字符串、 (2) 常見(jiàn)規(guī)則 A:字符 x 字符 x。舉例:a表示字符a 反斜線字符。 新行(換行)符 (u000A) 回車(chē)符 (u000D) ...

    jzzlee 評(píng)論0 收藏0
  • 正則達(dá)式

    摘要:本文內(nèi)容共正則表達(dá)式火拼系列正則表達(dá)式回溯法原理學(xué)習(xí)正則表達(dá)式,是需要懂點(diǎn)兒匹配原理的。正則表達(dá)式迷你書(shū)問(wèn)世了讓幫你生成和解析參數(shù)字符串最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫(xiě),作用是對(duì)字符串執(zhí)行模式匹配。 JS 的正則表達(dá)式 正則表達(dá)式 一種幾乎可以在所有的程序設(shè)計(jì)語(yǔ)言里和所有的計(jì)算機(jī)平臺(tái)上使用的文字處理工具。它可以用來(lái)查找特定的信息(搜索),也可以用來(lái)查...

    bang590 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Miracle_lihb

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<