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] * $/ –
你說得對,我匆忙忘記了一個字。 :)我編輯了我的答案。 –