我使用下面的模式来验证电子邮件NG模式用于验证电子邮件不工作
var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/igm;
复制从这个小提琴的格局。 (http://jsfiddle.net/jquery4u/5rPmV/)这很好。
我试着用AngularJS实现相同这样
<input type="text" placeholder="Email" ng-model="Employer.Email" ng-pattern="emailPattern" class="form-control" name="email" required />
<p ng-show="showMessages && registerEmployerForm.email.$error.required" class="text-danger">
Email is required.
</p>
<p ng-show="showMessages && !registerEmployerForm.email.$error.required && registerEmployerForm.email.$error.pattern" class="text-danger">
Email is invalid.
</p>
的JavaScript
$scope.showMessages = true;
$scope.Employer = {
"Email": ""
};
$scope.emailPattern = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/igm;
$scope.RegisterEmployer = function(myForm) {
console.log(myForm)
};
我的小提琴:http://jsfiddle.net/codeandcloud/jusoqs88/
的问题是,如果我尝试[email protected] ,第一小提琴通过,第二小提琴失败。我的问题
- 为什么对于同一模式AngularJS行为有所不同?
- 是否有我的代码?
P.S:我知道input type="email"
与registerEmployerForm.email.$error.email
结合是角办法做到这一点。不幸的是我不能在这里实现它的正则表达式不应该通过类似[email protected]
可能帮助你http://stackoverflow.com/questions/23671934/form-validation-email-validation -not-working-as-expected-in-angularjs –
@hadiJZ:感谢它适合我现在的需要。想知道是什么让angularjs的行为有所不同 – naveen