NG模式只允许字母,数字,点,下划线和破折号
你怎么允许使用输入ng-pattern
只:letters
,numbers
,dot
,underscore
和dash
(. _ -)
?NG模式只允许字母,数字,点,下划线和破折号
已经尝试过下面的人
UPDATE:
$scope.validationPattern = '/^[a-zA-Z\d\-\_]+$/';
<input ng-model="model" type="text" ng-pattern="{{validationPattern}}" />
看你的要求,你需要一个点添加到模式:
$scope.regex = '^[a-zA-Z0-9._-]+$';
,并添加ng-trim="false"
到<input>
标记以禁止前导/尾随空格。
还有一个问题,如果我想添加斜线('/')为什么'^ [a-zA-Z0-9 ._- /] + $'不起作用? –
好吧,只要遵循以下任一策略:1)跳过连字符,不在乎你在字符类的末尾添加了什么,或者2)始终将连字符保留在字符类的末尾。如果您在字符串文字中转义,请使用双反斜杠。 –
谢谢!在运行中它有效,但不在我的项目中。我得到:'[$ parse:lexerr] Lexer错误:在表达式[^ [a-zA-Z0-9 ._/- ] + $]的列0-0 [^]处出现意外的下一个字符, ?这是输入的样子:'' –
[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/
接受数字,字母和三个符号
...并且它也接受空格。 –
而你试过......你使用的是什么模式和代码? –
@WiktorStribiżew:查看更新后的问题。 –
太棒了,什么不行?请注意,图案中没有点(编辑后)。尝试像这样''/^[a-zA-Z0-9 ._-] + $ /''并使用''(add'ng-trim =“false”')。 –