.directive('multimails', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl, ngModel) {
var validator = function(value) {
// console.log('validator: ' + value);
if (value != '' && typeof(value) != 'undefined') {
var splitMailsArr = value.split(';');
// .filter(function(el) {return el.length != 0});
for (var i = 0; i < splitMailsArr.length; i++) {
var currMail = splitMailsArr[i];
// console.log('currMail: ' + currMail);
if (currMail != '') {
if (/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i.test(currMail)) {
ctrl.$setValidity('multimails', true);
// console.log('pass');
} else {
ctrl.$setValidity('multimails', false);
// console.log('no pass');
break;
}
}
}
return value;
}
};
//驗證規則的順序
ctrl.$parsers.unshift(validator);
ctrl.$formatters.unshift(validator);
}
};
})
星期五, 4月 03, 2015
[AngularJS] 多個信箱驗證的directive實作
記錄一下多個信箱驗證的directive實作。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言
留個話吧:)