2014-03-27 84 views
-2

Email validation expression \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*允許空的空間,但在其他方面完美。Email validation expression w +([ - +。'] w +)* @ w +([ - 。] w +)* 。 w +([ - 。] w +)*允許空格

它不會失敗以下電子郵件地址:

john [email protected] 

我怎樣才能限制這個不允許空格?

+0

不要嘗試使用正則表達式驗證電子郵件地址。這個標準太複雜了。 [Here](http://ex-parrot.com/~pdw/Mail-RFC822-Address.html)是需要多少正則表達式(甚至不滿足*整數*標準)的例子。你在什麼情況下做這件事?我建議使用某種類型的模塊,因爲有很多這樣做是正確的。 – Biffen

+0

我正在使用它,同時保存人員記錄。如果用戶輸入無效的電子郵件地址,它會給出驗證錯誤。在驗證該控件時,我正在使用此正則表達式。 – user3467905

+0

這並不是一個很好的答案。我知道您正在嘗試驗證電子郵件地址。我只是說,正則表達式不適合這項工作。大多數編程語言都有適合你的模塊,我推薦使用其中的一種。 – Biffen

回答

0

某些API具有匹配整個字符串的功能,與其他字符串一樣,它將始終在字符串中的任意位置搜索。

如果是後一種情況,它不會失敗,因爲子字符串,特別是[email protected],與模式匹配。

要解決此問題,您可以檢查您使用的API是否具有匹配整個字符串的函數,也可以將^添加到開頭,將$添加到您的模式結尾,指示開始和字符串/行的結尾。

^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 
+0

謝謝Dukeling ...試着解決了空白問題,但又來了另一個問題,它失敗了單字母域名電子郵件地址[email protected] – user3467905