1 回答

TA貢獻1856條經驗 獲得超17個贊
/^[-.-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/
分成2部分,@之前和之后
@之前
^[-.-_A-Za-z0-9]+ 表示允許出現- . _ 和字母數字這些,且必須大于1個字符,字數無上限,而且他們出現的位置都不限
@之后
([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$
([_A-Za-z0-9]+\.)+ 表示允許大于1個字母數字出現,后面跟 .
[A-Za-z0-9]{2,3} 表示允許2個或3個字母數字的組成的單詞出現
下面的驗證,根據你的修改了一些
/^[^\_][\w\-\.]+@[\w\.]+[\w]{2,3}$/
@之前
^[^\_][\w\-\.]+ 排除下劃線出現在用戶名頭位置,\w表示所有字母和數字,下劃線
后面都差不多意思
------------------------------------
不好意思,沒注意到你的補充,現在才看到
1.我的代碼里最前面的/^是表示正則表達式的開始的吧?
a: 是的,^是開始符號 $是結束符號
2.按我的代碼,第二個橫線是不是可以去掉,而且原意不變?(我試過,去掉第一個不可以,去掉第二個代碼能正常運行),如果不可以去掉那么要它有什么用?
我試過用/^[-.-_-----A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/這個代碼也能用,也就是說從我那里的第三個橫線開始加多少個都可以。
[email protected]這個字符串可以在你的表達式里通過,這個違背了,我之前的意思:及最后一個單詞后面只能是兩個或三個字母。
a:倆個短橫線保留一個就可以了,不能去掉第一個的原因是第二個短橫線-應該被當成連接符了,就想A-Z這樣的中間的鏈接符,你去掉第一個的話,在第二個短橫線那里加個反斜杠\就好了
你提出的錯誤確實是存在,應該是[\w.]+這里出問題了,這[]里面的是可選的,而不是必須的,所以在匹配bbbbbbbbb的時候在[\w.]+這里成功,最后的[\w]{2,3}沒起到作用,造成了這個錯誤,我改了一下,這樣在沒有到字串末尾時連接點.就成為必須字符
/^[^\_][\w\-\.]+@([\w]+\.)+[\w]{2,3}[^\_]$/
- 1 回答
- 0 關注
- 693 瀏覽
添加回答
舉報