Ошибка проверки электронной почты с использованием ng-pattern в AngualurJs?

Я использую следующий шаблон ng для проверки электронной почты

 "/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[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,}))$/" />

Мой код для поля электронной почты, как показано ниже:

<input type="text" id="email" name="email" data-ng-model="userInfoDto.email" class="form-control" placeholder="Email" title="Email" data-ng-required="true  autofocus="autofocus" data-ng-blur="chcekUniqueEmail()" data-ng-pattern="/^(([^<>()[]\\.,;:\s@\"]+(\.[^<>()[]\\.,;:\s@\"]+)*)|(\".+\"))@‌​(([[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,}))$/" /

но я получаю следующую ошибку

  • Неверное расположение текста (]+(.[^) В теге ().
  • Начальный тег () не закрыт должным образом, ожидается ">".

Пожалуйста, любые предложения.

1 ответ

Если вы хотите проверить электронную почту, тогда используйте ввод с type="email" вместо type="text". AngularJS имеет проверку электронной почты из коробки, поэтому нет необходимости использовать ng-pattern для этого.

Вот пример из оригинальной документации:

<script>
function Ctrl($scope) {
     $scope.text = 'me@example.com';
     $scope.email = /^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$/;
}
</script>
<form name="myForm" ng-controller="Ctrl">
    Email: <input type="email" name="input" ng-model="text" required>
    <span class="error" ng-show="myForm.input.$error.required"> Required!</span>
    <span class="error" ng-show="myForm.input.$error.email"> Not valid email!</span>
    <tt>text = {{text}}</tt><br/>
    <tt>myForm.input.$valid = {{myForm.input.$valid}}</tt><br/>
    <tt>myForm.input.$error = {{myForm.input.$error}}</tt><br/>
    <tt>myForm.$valid = {{myForm.$valid}}</tt><br/>
    <tt>myForm.$error.required = {{!!myForm.$error.required}}</tt><br/>
    <tt>myForm.$error.email = {{!!myForm.$error.email}}</tt><br/>
</form>

Для получения более подробной информации прочтите этот документ: https://docs.angularjs.org/api/ng/input/input%5Bemail%5D

Другие вопросы по тегам