我的电子邮件验证有问题。我使用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。
答案 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>