我使用下面的模式來驗證電子郵件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