javascript - 带双点的 Angular 电子邮件验证

标签 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@test..com

不正常但验证通过,但电子邮件不正确。我认为问题出在 ng 模式中。

最佳答案

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

这就是您遇到此问题的原因:即使“test@test..com”通过了 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">

关于javascript - 带双点的 Angular 电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37407676/

相关文章:

javascript - 基本的 jquery fiddle 到 Angular 指令

javascript - 在 AngularJS 应用程序中路由后无法聚焦于文本字段

Angularjs:在服务器端更新失败后恢复 $watch 中的模型值

email - 微软图 API {"code":"ErrorInvalidPropertySet","message":"Set action is invalid for property."}

java - Spring MimeMessageHelper 附件文件名编码

java - 了解Android的webview addjavascriptinterface

Javascript - 引用错误 : agevalue is not defined

javascript - Controller 中的更新日期未反射(reflect)在输入类型=日期中

javascript - AngularJS:如何使不属于 ng-repeat 一部分的局部变量起作用

php - 编辑表单以清理/验证电话号码