使用' ng-pattern'与...匹配'在表单验证中

时间:2017-06-04 13:55:18

标签: html angularjs forms validation ng-pattern

您好我正在尝试使用密码和确认密码输入创建一个简单的表单。

我发现了' ng-pattern'并且' ng-match'不要一起工作。 在密码标记没有填充值之前,它不会与ng-pattern限制匹配,因此他在本地范围内为空,并且由于“匹配”而导致匹配。密码标签和确认密码标签之间的指令我总是看到错误"错误密码不多"即使是相同的。

有什么方法吗?

由于



JButton

  $scope.ok = function (){};
  $scope.password = '';
  $scope.confirmPassword = '';
  $scope.passwordRegex ='(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,})$'; 




1 个答案:

答案 0 :(得分:0)

在代码中进行以下更改: -

更改您的

<div ng-show="password != confirmPassword">
       <div ng-show="form.confirmPassword.$error.match">
            PasswordMismatch</div>
      </div>

到此: -

<span ng-if="confirmPassword !== password" 
      ng-show="form.confirmPassword.$dirty">
      Password Mismatch!  
</span>

您需要在确认密码div标签

中添加此项
<div ng-class="{'has-error' : userForm.confpwd.$invalid && 
                !userForm.confpwd.$pristine}" >
</div>

删除正则表达式开头和结尾的单引号,并将其更改为: -

$ scope.passwordRegex = / ^(?!^ [0-9] $)(?!^ [a-zA-Z] $)^([a-zA-Z0- 9] {6})$ /;

这样做可以解决您的问题。