2013-01-11 45 views
1

我在web應用程序上使用tapestry 4。我有掛毯驗證我的電子郵件地址字段。據掛毯documentation它使用正則表達式驗證電子郵件地址帶有掛毯的電子郵件正則表達式

^\w[-._\w]*\[email protected]\w[-._\w]*\w\.\w2,6$ 

但是,當我輸入與.cat或任何類似的結束確認捕獲了一個錯誤,它不會保存的電子郵件地址的電子郵件地址。

有誰知道爲什麼會發生這種情況,因爲我不熟悉正則表達式?

+1

這似乎是一個錯誤:它看起來像只接受「現有」頂級域名,而不管電子郵件是否符合RFC 5322的規定。「a @ b」是順便說一句,這也是有效的,這會使他們的正則表達式失效。 – fge

+0

只是出於好奇,你知道這將允許什麼地址?還是僅僅是com,info,net和org以及國家代碼頂級域名? – flexinIT

+1

我想你可以使用正常的電子郵件正則表達式http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address –

回答

2

我認爲你提到的文檔可能會有這個例子的問題。

該正則表達式的正確版本應爲(而不是遠離該給定的一個)

^\w[-._\w]*\[email protected]\w[-._\w]*\w\.\w{2,6}$ 

最後部分(\w{2,6}),其(根據該正則表達式)頂域相匹配應該是從2至6個字符。

看看這個網頁regex101網站。這是一個非常方便的實驗正則表達式

相關問題