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

首頁 > 開發(fā) > JS > 正文

通過JS正則表達式實現(xiàn)驗證郵件的代碼

2024-09-06 12:41:02
字體:
供稿:網(wǎng)友

導讀:在javascript中驗證郵件的代碼十分常見,網(wǎng)上能找到許多,主要是通過js的正則表達式來實現(xiàn),本文主要討論這一十分常見的代碼,適合新手閱讀學習

白天總是玩著不看書,這兩晚卻很神奇地因為睡不著起來看書,正則表達式。很好玩的東西。《javascript 高級程序設計》是本好書,寫得很系統(tǒng)。不過,在正則表達式那一章,看到驗證電子郵件那里,似乎把正式表達式給寫錯了,也被我不小心發(fā)現(xiàn)了。

原代碼是這樣的:

function isvalidmail(stext){
var remail = /^(?:/w+/.?)*/w+@(?:/w+/.?)*/w+$/;
return remail.test(stext);
}

似乎這樣驗證像sofish@163.com這樣的郵箱是沒問題的。但,由于仔細看一下在at(@)后面的非捕獲性引用中,使用的是*(出現(xiàn)任意次):

那么,也包括出現(xiàn)0次,這樣的話。像sofish@163com這樣的郵箱也是通過驗證的。 顯然,"."是必須至少出現(xiàn)一次的,因此,而"+"才表示至少出現(xiàn)一次。但這里,在at后面,我們可以寫像163.com.cn這樣的結(jié)尾,但直接改成"+"的話,這樣163..com.cn也可以通過驗證。下面是我的方法:

規(guī)定"."號只出現(xiàn)一次。然后在非捕獲引用后面,讓其他至少顯示1次,再以任意的字符結(jié)束。不過,這里的"/w"是包括下劃線的,也就是說,像 sofish@163_.com_這樣的郵件也是可能通過難的,顯然,這是一個不合法的郵件,在at后面的"."號后前,是不可以出現(xiàn)下劃線的,而后面,只能是英文字母的(至少目前我沒有見過用后面是數(shù)字的域名)。并且,這里應該注意到的是,"/w"所代表的字符包括下劃線,不用縮寫是這樣的:

因此,上面的代碼可以這樣進行改裝:

其實,通常這樣寫就可以了,對吧。要更深入,還可以考慮at后面的各個點后面,不應該用相同的字母,比如.com.cn.com.cn(很顯然,這樣的域名還是有的,我錯了,感謝@stonywang同學的提醒,真的有人這么囧這樣做么?)這樣是不被請允許的。可以考慮一下利用捕獲性引用進行儲存,并進行比較驗證。當做一道練習題吧(突然感覺好像在學高中的數(shù)學題)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 驻马店市| 新干县| 贡嘎县| 东源县| 穆棱市| 阿城市| 霍山县| 炉霍县| 白河县| 嘉禾县| 蕲春县| 河西区| 开鲁县| 吉安市| 靖西县| 辰溪县| 罗江县| 上杭县| 邵武市| 泸州市| 邻水| 广州市| 泾川县| 宝山区| 信丰县| 青海省| 广宗县| 石河子市| 闵行区| 罗田县| 海南省| 太仓市| 庆阳市| 甘南县| 林芝县| 西安市| 邓州市| 陵川县| 黄浦区| 古蔺县| 潮州市|