javascript - 如何在表单提交之前检查密码模式 Angular JS 1.6

标签 javascript jquery angularjs

我有密码和确认密码字段。我有一个指令,它将检查密码是否匹配。一旦密码匹配,我就会启用提交按钮。

但我需要处理一些条件以及密码匹配场景。

需要处理的其他条件:

  1. 不得包含超过 3 个重复数字。
  2. 不应包含按顺序排列的数字(例如:1234、5678、2345 等)
  3. 它应该只允许数字。(不允许使用特殊字符、字母、空格。)

这是我尝试过的:

HTML:

<div ng-controller="cPswd">
   <form id="form" autocomplete="off" name="form" novalidate>
      <div>
         <label for="password">password</label>
         <input id="password" name="password" type="password" value="" maxlength=4 ng-model="pwd.password" required />
      </div>
      <div>
         <label for="cpassword">confirm password</label>
         <input id="cpassword" name="cpassword" type="password" value="" maxlength=4 ng-model="pwd.cpassword" compare-to="pwd.password" required />
      </div>
      <button ng-disabled="form.$invalid">Submit</button>
   </form>
</div>

比较密码指令:

angular.module('app.module').directive('compareTo',compareTo);

function compareTo(){
        return {
          require: "ngModel",
          scope: {
            otherModelValue: "=compareTo"
          },
          link: function(scope, element, attributes, ngModel) {

            ngModel.$validators.compareTo = function(modelValue) {
              return modelValue == scope.otherModelValue;
            };

            scope.$watch("otherModelValue", function() {
              ngModel.$validate();
            });
          }
        }
    }

Controller :

angular.module('app.module').controller('cPswd',['$scope', function($scope){
 $scope.pwd = {
   password: "",
   cpassword: ""
 };

}]);

最佳答案

AngularJS 有一个名为 ng-pattern 的验证属性指令。

我不是正则表达式方面的专家,但通过很少的研究,我相信您可以找到适合您验证需求的正则表达式。

关于javascript - 如何在表单提交之前检查密码模式 Angular JS 1.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42959428/

相关文章:

javascript - 不可见的 ReCaptcha 不调用回调

javascript - JQuery:如果选中另一个复选框,则禁用/启用多个复选框

javascript - 如何顺序运行多个 gulp 函数?

javascript - CKEditor 工具栏定位到带有 float 图像的内容的右侧

javascript - jQuery 数据表 : iDisplayLength set to -1 to show all rows

javascript - 为什么在 Angular 中通过 $parse 分配设置值时不触发scope.$watch?

javascript - Threejs blender 导出器以错误的格式导出

Jquery slider 。以前的职位

javascript - Angular : How to force recompile directive?

javascript - 与 Javascript 对象交互,其中键是数字日期/时间