<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の正規表現と一致する限り、入力が有効であるということです。
何が起きてる?
予期している動作が実際の動作ではないのはなぜですか?