angular 1.2.26, , $validators ngModel. 1.3.x angular.
1.3.x, , 2 , ng-model ( 1), ng-model :
app.directive('overwriteEmail', function() {
var EMAIL_REGEXP = /^[a-z0-9!
return {
require: 'ngModel',
restrict: '',
priority: 2,
link: function(scope, elm, attrs, ctrl) {
if (ctrl && ctrl.$validators.email) {
ctrl.$validators.email = function(modelValue) {
return ctrl.$isEmpty(modelValue) || EMAIL_REGEXP.test(modelValue);
}
}
}
}
});
Demo
var app = angular.module('app', []);
app.directive('overwriteEmail', function() {
var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@example\.com$/i;
return {
require: 'ngModel',
restrict: '',
priority: 1,
link: function(scope, elm, attrs, ctrl) {
if (ctrl && ctrl.$validators.email) {
ctrl.$validators.email = function(modelValue) {
return ctrl.$isEmpty(modelValue) || EMAIL_REGEXP.test(modelValue);
}
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script>
<div ng-app="app">
<div>
<form name="form" class="css-form" novalidate>
<div>
Overwritten Email:
<input type="email" ng-model="myEmail" overwrite-email name="overwrittenEmail" />
<span ng-show="form.overwrittenEmail.$error.email">This email format is invalid! </span>
<br>Model: {{myEmail}}
</div>
</form>
</div>
</div>
ng-pattern form.overwrittenEmail.$error.pattern , .
<input type="email" ng-pattern="/^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@example\.com$/i"
ng-model="myEmail" name="overwrittenEmail" />
<span ng-show="form.overwrittenEmail.$error.pattern">
Demo
var app = angular.module('app', []);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div>
<form name="form" class="css-form" novalidate>
<div>
Overwritten Email:
<input type="email" ng-model="myEmail" ng-pattern="/^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@example\.com$/i" name="overwrittenEmail" />
<span ng-show="form.overwrittenEmail.$error.pattern">This email format is invalid! </span>
<br>Model: {{myEmail}}
</div>
</form>
</div>
</div>