我有密码和确认密码字段。我有一个指令,它将检查密码是否匹配。一旦密码匹配,我就会启用提交按钮。
但我需要处理一些条件以及密码匹配场景。
需要处理的其他条件:
- 不得包含超过 3 个重复数字。
- 不应包含按顺序排列的数字(例如:1234、5678、2345 等)
- 它应该只允许数字。(不允许使用特殊字符、字母、空格。)
这是我尝试过的:
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/