Как я могу проверить более одного адреса электронной почты? [Дубликат]

0

У меня есть textarea, где пользователь может ввести несколько адресов электронной почты. Так что есть способ проверить их всех.

В настоящее время я использую ng-pattern для его валидации.

  • 1
    Разделите их, используя \n а затем протестируйте каждый из них ...
  • 0
    Что ты уже сделал? Можете ли вы предоставить соответствующий код?
Показать ещё 3 комментария
Теги:

1 ответ

0

Нашел этот и сделал для меня работу

.directive('multipleEmails', function () {
  return {
    require: 'ngModel',
    link: function(scope, element, attrs, ctrl) {
      ctrl.$parsers.unshift(function(viewValue) {

        var emails = viewValue.split(',');
        // loop that checks every email, returns undefined if one of them fails.
        var re = /\S+@\S+\.\S+/;

        // angular.foreach(emails, function() {
          var validityArr = emails.map(function(str){
              return re.test(str.trim());
          }); // sample return is [true, true, true, false, false, false]
          console.log(emails, validityArr); 
          var atLeastOneInvalid = false;
          angular.forEach(validityArr, function(value) {
            if(value === false)
              atLeastOneInvalid = true; 
          }); 
          if(!atLeastOneInvalid) { 
            // ^ all I need is to call the angular email checker here, I think.
            ctrl.$setValidity('multipleEmails', true);
            return viewValue;
          } else {
            ctrl.$setValidity('multipleEmails', false);
            return undefined;
          }
        // })
      });
    }
  };
});

см. здесь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню