2016-09-29 2 views
-3

Я пытаюсь создать проверку для углового поля ввода, которое принимает только символы a-zA-Z0-9 и специальные символы «.» (Полная остановка), «_» (. подчеркивания), "@" (в знак) я не могу показаться, чтобы получить повесить егоРегулятор углового ng-pattern не работает

Я пробовал:

ng-pattern="/[[email protected]]+/" 

требование:

  • Он может содержать только буквенные символы
  • может содержать буквенные и числовые
  • Он может содержать буквенные числовые и упомянутые специальные символы
  • Он не может содержать пространство
+0

Почему у вас есть '!' В нем? –

+0

Ваше регулярное выражение является правильным, кроме '!'. Какие входные данные принимаются/отклоняются, что вы не ожидаете? Покажите примеры входов и результатов и укажите те, которые не соответствуют ожиданиям. –

+0

, но не разрешает только буквенные – monda

ответ

3

Вот «блоки», чтобы написать окончательное решение:

It can contain only alphabetic characters - Use ^[a-zA-Z]+$
it can contain alphabetic and numeric - Use ^[a-zA-Z0-9]+$
It can contain alphabetic numeric and mentioned special characters - Use ^[[email protected]]+$
It cannot contain space - Use ng-trim="false" (see this SO thread)

JS полная демо:

var app = angular.module("app", []);
<html ng-app="app"> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
</head> 
 

 
<body> 
 
    <form name="form"> 
 
    <p>Enter text to validate:</p> 
 
    <input type="text" ng-model="name" name="name" ng-pattern="/^[[email protected]]+$/" ng-trim="false" /> 
 
    <div ng-show="form.name.$error.pattern">Text doesn't match with ng-pattern!</div> 
 
    </form> 
 
</body> 
 

 
</html>

0

Просто добавить актуальную информацию. Если вы используете Angular4, это должно быть:

pattern="^[[email protected]]+$" 
Смежные вопросы