.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實作。
沒有留言:
張貼留言
留個話吧:)