2013-12-12 32 views
0

我們有一套RegEx,用於驗證電子郵件,效果很好。 (。),如果電子郵件地址爲點在它儘管我們最近發現,正則表達式驗證將失敗,如果字符的點之後的數字小於3。例如(。):RegEx在點(。)後不允許少於3個字符

這裏是正則表達式:

/^[-a-z0-9#$%^&'`?{}_=+\/}{\'?]+(\.[-a-z0-9#$%^&'`?{}_=+\/}{\'?]+([a-zA-Z]{2,4})+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i 
+4

你應該閱讀這個答案:[使用正則表達式來驗證電子郵件地址](http://stackoverflow.com/a/201378/1163867]) – MarcinJuraszek

+0

我做過了,但如果我得到一個這個具體的正則表達式的答案。 – MontyNZ

+0

爲了學習,我建議使用這個免費的語法高亮器http://regex101.com/其迄今爲止我嘗試過的最好的一個。它甚至描述了你的正則表達式的每一部分,並有各種可用的正則表達式引擎。你可以用元字符來簡化這個正則表達式,而且你只需要在tld域和@結構上匹配。 http://www.regular-expressions.info/email.html明確的來源描述瞭如何最好地做到這一點,我認爲它也有RFC壓縮版本,這太可怕了! – JoeKir

回答

0

只需刪除中間附近的正則表達式的([a-zA-Z]{2,4})+部分即可。我不明白爲什麼甚至會擺在那裏。

+0

非常感謝。 – MontyNZ