限制几个特殊字符,如%,&和"在ng-pattern的输入字段中

时间:2017-03-16 11:27:00

标签: angularjs angularjs-ng-pattern

我有一个密码,其中字母数字和符号应至少为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 &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>

1 个答案:

答案 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>