2017-06-20 70 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