国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 上栗县| 海淀区| 大化| 竹山县| 桦川县| 景泰县| 福海县| 平果县| 青冈县| 东乡族自治县| 界首市| 承德市| 南昌县| 大渡口区| 始兴县| 安多县| 高青县| 东阿县| 怀远县| 祁门县| 灵丘县| 政和县| 朝阳区| 峨眉山市| 双峰县| 友谊县| 福泉市| 高密市| 宣威市| 奉新县| 垫江县| 乌鲁木齐市| 广昌县| 武鸣县| 克东县| 西和县| 健康| 石首市| 罗甸县| 肃北| 堆龙德庆县|