ng-pattern разрешает только буквы, цифры, точки, подчеркивания и тире

Как бы разрешить для ввода, используя ng-pattern только: letters, numbers, dot, underscore а также dash( . _ -)?

Уже пробовал следующие

ОБНОВИТЬ:

$scope.validationPattern = '/^[a-zA-Z\d\-\_]+$/';

<input ng-model="model" type="text" ng-pattern="{{validationPattern}}" />

3 ответа

Решение

Судя по вашим требованиям, вам нужно добавить точку в шаблон:

$scope.regex = '^[a-zA-Z0-9._-]+$';

и добавить ng-trim="false" к <input> тег, чтобы запретить начальные / конечные пробелы.

Смотри этот планкр

[a-zA-Z0-9][A-Za-z0-9._-]*

этот работает

/^[a-zA-Z0-9 ._-]+$/

Это регулярное выражение кажется вам подходящим, если оно не помещается непосредственно в ng-шаблон, сделайте необходимые корректировки, например.

в контроллер добавить

$scope.pattern = /^[a-zA-Z0-9 ._-]+$/;

сейчас в использовании html ng-pattern="pattern"

Протестировано с использованием этого: http://www.regextester.com/

Принимает цифры, алфавиты и три символа (.-_)

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