0
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.4/angular.min.js"></script>
<div ng-app>
<form class="edit-segment edit-form" name="form">
<input type="text" class="form-control" ng-model="dname" name="name" maxlength="100" ng-pattern="/[A-z0-9 ]+/" ng-required='true' />
<output>{{form}}</output>
<output>{{dname}}</output>
<output>{{form.name.$valid}}</output>
</form>
</div>
的模式是:
/[A-Z0-9] +/
出于某种原因,该角度注入的HTML不是作用我期待的方式。 我期望发生的事情是,只要用户输入非字,非数字,非空格字符,输入变为无效,所以$ form.name。$ valid应该是false。
取而代之的是,只要您输入的内容包含字母,数字或空格,输入变为$ valid就会变为true。
这样:?
lkajskdjf < {}
有效
,,...,{} {] [],
无效。。
。,..,{} {] []。,\
有效。
?>?./...// 9k
有效。
kjkljd lkjsdf 90
是有效的。
唯一应该有效的是最后一个... 我对ng-pattern的理解显然是错误的,只要输入的字符与ng-pattern中的正则表达式匹配。
这是怎么回事?
为什么我期待的行为不是我所得到的行为?
?但这并不符合任何内容:http://regexr.com/3bebq –
你很近;答案是/^[A-z0-9] * $/ –
你说得对,我匆忙忘记了一个字。 :)我编辑了我的答案。 –