2011-03-06 17 views
0

我使用電子郵件驗證如下:什麼正則表達式對電子郵件驗證有好處?

var filter = /^(\w+)(\.\w+)*@(\w+)(\.\w+)+$/; 

只注意到它不支持[email protected](它不支持通配符+部分)。任何方式來添加?

+1

它也不支持其他常見的電子郵件字符,如數字,短劃線或下劃線。 – 2011-03-06 03:49:31

+0

不,它支持_ – AnApprentice 2011-03-06 03:50:28

+0

我的不好。 '\ w'確實包含數字和下劃線,但它是否包含破折號?示例:'an.apprentice @ experts-exchange.com' – 2011-03-06 06:37:39

回答

1

我很喜歡SLak的回答。其實我有一個正式表達,我寫了一段時間,這是更開放的。

^[email protected]+\..+$ 

它背後的想法是相似的。不要這麼努力。相反,錯在接受太多的一方。據我所知,這個正則表達式應該接受每一個可以想象的有效的電子郵件地址(以及一些無效的電子郵件地址)。

+0

但仍然拒絕這個問題是正確的通配符? [email protected]被拒絕 – AnApprentice 2011-03-06 04:03:06

+0

不,這個+很好。這裏是測試案例... http://regexhero.net/tester/?id=4b398738-f887-4eb1-817a-09398ca30c43 – 2011-03-06 04:05:08

2

您應該使用\[email protected]\S+\.\S+,它將與@.匹配任何內容。
除此之外的任何內容都會拒絕有效但不明確的地址。

即使這樣也會拒絕有效但不明確的地址,如"Test Me"@localhost
但是,這些從未在實踐中使用。 [引用需要]

+0

雅但拒絕通配符+ – AnApprentice 2011-03-06 03:57:10

+0

@AnA:這不會拒絕'+'。 – SLaks 2011-03-06 13:29:26

相關問題