0

我有一个密码,它应该是至少 8 个字符,带有字母数字和符号,除了 &,",% 。我给了 ng-pattern 并限制了几个符号。但是当我输入 & 时它也接受了。这个 ng-Pattern 通常有效。当您输入 & 和 $ 时,它同时接受。而它不应该允许 &。这就是我的观点

<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 &amp; 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>
4

1 回答 1

1

检查这个。这对我来说很好,不接受 & 和 %。

<!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>
于 2017-03-16T11:54:15.973 回答