2015-12-21 92 views
0

我遇到了一個體面的電子郵件正則表達式的描述。Javascript電子郵件正則表達式

/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ 

但我也想加入一些標點符號到電子郵件中的第一部分,同時保留了其他的功能(如無重複。)

我想出了這樣最好很遠的是:

([\/!#$%&'*+-=?^_`{|}~]*\w+)([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,40})+$ 

但是這不會允許在電子郵件的第一部分結束時標點符號。

我覺得正則表達式很混亂,有誰知道如何正確實現這個?

例子:

Yes [email protected] 
Yes [email protected] 
Yes [email protected] 
Yes [email protected] 
Yes [email protected] 
Yes [email protected][123.123.123.123] 
Yes "email"@domain.com 
Yes [email protected] 
Yes [email protected] 
Yes [email protected] 
Yes [email protected] 
Yes [email protected] 
Yes [email protected] 
No plainaddress 
No #@%^%#[email protected]#[email protected]#.com 
No @domain.com 
No Joe Smith <[email protected]> 
No [email protected]@domain.com 
No [email protected] 
No [email protected] 
No [email protected] 
No あいうえお@domain.com 
No [email protected] (Joe Smith) 
No [email protected] 
No [email protected] 
No [email protected] 
+0

你能提供樣本輸入嗎? – anubhava

+1

我可以給出的最佳提示是:用正則表達式開始小(只是基本的),並從那裏展開。這使你控制你在做什麼而不是像方法trial – 321X

+1

試用錯誤看看這個線程[在JavaScript驗證電子郵件地址](http://stackoverflow.com/questions/46155/validate-email-address -in-javascript) – Klante

回答

1

這是我現在最接近的嘗試,我認爲這是大致正確

^[a-zA-Z0-9_!#$%&‘*\=\+\/\?^{|}~]+([\.-]?[a-zA-Z0-9_!#$%&‘*\=\+\/\?^{|}~]+)*@\w+([\.-]?\w+)*(\.\w{2,50})+$ 
0

你需要從here其相當於[A-Za-z0-9_]更換\w和逃避所有的特殊字符。

試試這個: -

/^[\/\!#\$\%&'\*\+\-\=\?\^_`\{\|\}~A-Za-z0-9]+[\.-]?[\/\!#\$\%&'\*\+\-\=\?\^_`\{\|\}~A-Za-z0-9]*@\w+([\.-]?\w+)*(\.\w{2,40})+$/ 
0
([a-zA-Z0-9\-\_\"]+)([\_\.\-\+{1}])?([a-zA-Z0-9\-\"\_]+)\@([a-zA-Z0-9\[]+)([\-])?([a-zA-Z0-9]+)?([\.])([a-zA-Z0-9\.\]]+) 

傑克,我所提到的將提供這個問題的解決方案的表達。這將根據問題給出想要的結果。

相關問題