如何仅使用ng-pattern
实现输入限制:只允许输入字母
、数字
、点
、下划线
和破折号
( . _ -)
?
已尝试以下方法:
更新:
$scope.validationPattern = '/^[a-zA-Z\d\-\_]+$/';
<input ng-model="model" type="text" ng-pattern="{{validationPattern}}" />
如何仅使用ng-pattern
实现输入限制:只允许输入字母
、数字
、点
、下划线
和破折号
( . _ -)
?
已尝试以下方法:
更新:
$scope.validationPattern = '/^[a-zA-Z\d\-\_]+$/';
<input ng-model="model" type="text" ng-pattern="{{validationPattern}}" />
根据您的要求,您需要在模式中添加一个点:
$scope.regex = '^[a-zA-Z0-9._-]+$';
并且在 <input>
标签中添加 ng-trim="false"
,以禁止首/尾空格。
请参见此 plunkr
/
),为什么 ^[a-zA-Z0-9._-/]+$
不起作用? - el.severo[$parse:lexerr] Lexer Error: Unexpected next character at columns 0-0 [^] in expression [^[a-zA-Z0-9._/-]+$]
,有什么想法吗?这是输入的样子:<input ng-model="model" type="text" ng-blur="onChange(model)" ng-change="didEndChanges(model)" ng-class="{'invalid': !isFieldValid}" ng-pattern="^[a-zA-Z0-9._/-]+$" ng-trim="false" data-i18n-attr="{placeholder: 'common.scanData' }" ng-disabled="disabled" placeholder="Scan data" class="ng-pristine ng-untouched ng-valid ng-valid-pattern" style="">
- el.severong-pattern="/^[a-zA-Z0-9._\/-]+$/"
。 - Wiktor Stribiżew[a-zA-Z0-9][A-Za-z0-9._-]*
这个有效
/^[a-zA-Z0-9 ._-]+$/
如果这个正则表达式不能直接匹配ng-pattern,那么您需要进行必要的调整,如下:
在控制器中添加:
$scope.pattern = /^[a-zA-Z0-9 ._-]+$/;
现在在html中使用ng-pattern="pattern"
测试使用:http://www.regextester.com/
接受数字、字母和三个符号(.-_)
'/^[a-zA-Z0-9._-]+$/'
并使用<input ng-model="model" type="text" ng-trim="false" ng-pattern="{{validationPattern}}" />
(添加ng-trim="false"
)。 - Wiktor Stribiżew