2017-06-20 71 views
0

這裏是我的javascript代碼電子郵件validatior的Javascript

$scope.isValidEmailAddress = function(emailAddress) { 
      // var pattern = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/); 
      var pattern = new RegExp(/^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/); 
      return pattern.test(emailAddress); 
     }; 

當我們檢查以下電子郵件它將返回true,但我需要驗證這種類型的電子郵件

[email protected]

它應該是無效的電子郵件

+0

請說明它是什麼,這使得地址無效。我的印象是你的意思是雙倍的頂級域名,但我不確定。提供更多的樣本輸入和理想的結果可能會有幫助。 – Yunnosch

+0

[驗證電子郵件地址在JavaScript?](https://stackoverflow.com/questions/46155/validate-email-address-in-javascript) – FortyTwo

回答

0

更新爲根據註釋。

如果您希望最多添加兩個頂級域名,您可以使第二個域成爲可選項。

$scope.isValidEmailAddress = function(emailAddress) { 
    // Same regex as before but an additional TLD regex has been added. 
    var pattern = new RegExp(/^[\w\-\.\+]+\@[a-zA-Z0-9\-]+\.([a-zA-z0-9]{2,4}\.)?[a-zA-z0-9]{2,4}$/); 
    return pattern.test(emailAddress); 
}; 
+0

但如果電子郵件地址是這樣的:**[email protected]。在**它是給虛假的價值。 – shiva

+0

你只想在@符號後面最多允許兩個點號嗎? – Mike

+0

是的。我想讓兩個'。' @符號 – shiva