密码验证使用angular.js失败

时间:2015-11-06 08:06:47

标签: javascript angularjs validation

我无法使用Angular.js正确验证密码字段。让我先解释一下我的代码。

<span class="input-group-addon ndrftextwidth text-right" style="width:180px">Password :</span>
<div ng-class="{ 'myError': billdata.pass.$touched && billdata.pass.$invalid }">
<input type="{{inputType}}" name="pass" id="deptpass" class="form-control" placeholder="password" ng-model="password" ng-minlength="8" ng-pattern="/^(?=.*[A-Z])(?=.*\d)(?=.*[a-z]).*_.*/" ng-keypress="clearField('deptpass');" >
 </div>
</div>
<div class="help-block" ng-messages="billdata.pass.$error" ng-if="billdata.pass.$touched">
<p ng-message="minlength" style="color:#F00;">This field is too short.The min length of your password should be 8.</p>
<p ng-message="pattern" style="color:#F00;">This field needs the special character like at least one number,upper case,lower case letter,_,@,#,&,%</p>
</div>

这里我收到的信息是下划线(_)。如果用户输入@,#,$,&,%字符也应该被字段占用,则无法验证。请帮助我。

1 个答案:

答案 0 :(得分:0)

如果我没错,那么你需要ng-pattern for password,其中包含至少一个数字,大写,小写字母,_,@,#,&amp;,%,最小长度为8。

请使用以下ng-pattern:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_!@#\$%\^&\*])(?=.{8,})/

仅当字符串包含至少一个数字,大写,小写字母,_,@,#,&amp;,%且最小长度为8时,才允许这样做。