带双点的角度电子邮件验证

时间:2016-05-24 08:03:45

标签: javascript angularjs email

我的电子邮件验证有问题。我使用Angular.js。 在我的表格中,我有一个输入:

<input class="form-control input-flat-underline"
                               ng-pattern="/^[\w\.-]+@[\w\.-]+\.[\w]+$/"
                               id="email" name="email" ng-model="ctrl.user.email" required type="email">

电子邮件

  

测试@ test..com

不行,但验证通过,但电子邮件不正确。我认为问题在于ng-pattern。

2 个答案:

答案 0 :(得分:2)

我假设您要验证电子邮件地址。因此,在这种情况下,您不需要创建自己的正则表达式模式,因为正确的表达式将是quite complex。你不想这样做。

这就是为什么你有这个问题的原因:即使“test @ test..com”passess ngPattern验证(但它应该,这是无效电子邮件地址,正则表达式为not standard compliant),它在type =“email”验证(Angular one)上失败。

Angular有内置的电子邮件验证正则表达式(这一个here),您只需使用输入type="email"就可以使用它。因此,在您的情况下,要进行正确的电子邮件地址验证,您需要做的就是删除ngPattern:

<input class="form-control input-flat-underline" id="email" name="email" 
        ng-model="ctrl.user.email" 
        required 
        type="email">

答案 1 :(得分:0)

您可以通过从输入标记中删除ng-pattern选项来尝试角度内置电子邮件验证。 如下所示:

<input type="email" name="input" ng-model="email.text"  required>

否则,您可以尝试使用以下内容进行验证:

<input type="email" name="input" ng-model="email.text" ng-pattern="/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/" required>