2011-01-14 28 views
-2

我在正則表達式中很糟糕,需要對字段進行客戶端驗證。這些電子郵件規則的Javascript RegEx

什麼是正則表達式來測試基於這些規則的一個有效的電子郵件地址:

E-mail地址必須具有以下特性:

  1. @符號。
  2. 至少有一個期間(連續兩次)。
  3. @和第一個句點之間至少有一個字符。
  4. 最後一段時間後至少有一個字符。

在此先感謝。

-Seth

+2

http://www.google.com/search?q=email+regex – tdammers 2011-01-14 08:27:23

+3

不會搜索「regexp email」幫助 - > http://www.regular-expressions.info/email.html? – Maxym 2011-01-14 08:27:38

回答

4

如果你想使用正則表達式這一點,至少這樣做是正確:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) 

此正則表達式是從this article,你應該在整體絕對讀取。

1
function validateEmail(elementValue){ 
    var emailPattern = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{1,4}$/; 
    return emailPattern.test(elementValue); 
} 

取自article。如你所知,它只在@之後接受一個點。

@edit:根據another article,更標準的符合變種是:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9]) 

它的權衡是在文章中explanined了。值得一讀!