我有一个密码,其中字母数字和符号应至少为8个字符,除了&,",%。我给出了ng-pattern和限制的几个符号。但是当我输入&它也接受了。这种ng-Pattern通常有效。当你进入&而且它接受两者。而它不应该允许&amp ;.这就是我的观点
<div class="form-group fields col-xs-12 col-sm-6 col-md-4 col-lg-4" ng-class="{'has-error' : (submitted || tForm.password.$dirty || tForm.submitted) && tForm.password.$invalid }">
<input type="password" name="password" placeholder ="Password*" class="form-control1" autocomplete="off" ng-model="model.password" ng-minlength="8" ng-maxlength="20" required ng-pattern="/(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$^*)(._-])(?=.*[^a-zA-Z._-])(?=.*[^a-zA-Z._-])/" />
<div ng-show="!tForm.password.$error.required && (tForm.password.$error.minlength || tForm.password.$error.maxlength) && tForm.password.$dirty" class="help-block">Passwords must be between 8 and 20 characters.</div>
<div ng-show="!tForm.password.$error.required && !tForm.password.$error.minlength && !tForm.password.$error.maxlength && tForm.password.$error.pattern && tForm.password.$dirty" class="help-block">Must contain one lower & uppercase letter, number and one non-alpha character (except %,",")</div>
<div ng-show="(submitted && tForm.password.$error.required) " class="help-block">password is required.</div>
</div>
答案 0 :(得分:1)
检查一下。这对我来说很好,不接受&amp;和%。
<!DOCTYPE html>
<html ng-app="myapp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>
<div ng-controller="myCtrl">
<form name="myForm" ng-submit="onSubmit()">
<input type="text" ng-model="price" name="price_field"
ng-pattern="/(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$^*)(._-])(?=.*[^a-zA-Z._-])(?=.*[^a-zA-Z._-])/" required>
<span ng-show="myForm.price_field.$error.pattern">Not a valid password</span>
<span ng-show="myForm.price_field.$error.required">This field is required!</span>
<input type="submit" value="submit"/>
</div>
</form>
<script>
angular.module('myapp',[])
.controller('myCtrl',function($scope){
})
</script>
</body>
</html>