javascript - AngularJS 四分之三验证

标签 javascript angularjs regex validation angularjs-directive

我正在尝试验证密码,但遇到问题。现在,我有下一个验证器的输入:

<form name="RegisterForm">
    <input type="password" name="password"
                           ng-minlength="8"
                           ng-maxlength="20"
                           space-restricted
                           numbers-required
                           lowercase-required
                           uppercase-required
                           special-characters-required
                           password-validator
                           required>
</form>

这是小写验证器的示例:

function lowercaseRequired() {
    return {
        require: 'ngModel',
        restrict: 'A',
        link: link
    };
}

function link(scope, element, attrs, ngModel) {
    ngModel.$parsers.unshift(function(value) {
        var validationPattern = /(?=.*[a-z])|^$/,
            isValid = validationPattern.test(value);

        ngModel.$setValidity('lowercaseRequired', isValid);
        return isValid ? value : undefined;

}

How i can handle minimum three out of four validations?

  • 小写
  • 大写
  • 特殊字符
  • 数字

我考虑过大型正则表达式,但我认为这是一个坏主意。因此,我需要获取一个包含以下内容的密码:最少 8 个字符,最多 20 个字符,不包含空格,并且至少包含四分之三的验证。

最佳答案

答案如下: ^((?=.*[\d])(?=.*[a-z])(?=.*[A-Z])|(?=.*[a-z])(?=.*[A-Z])(?=.*[^\w\d\s])|(?=.*[\d])(?=.*[A-Z])(?=.*[^\w\d\s])|(?=.*[\d])(?=.*[a-z])(?=.*[^\w\d\s])).{8,20}$

<强> REGEXR

地点:

  • ^ - 行 anchor 的开头
  • ((?=.*[\d]) - 检查数字
  • (?=.*[a-z]) - 检查小写字母
  • (?=.*[A-Z]) - 检查是否大写
  • |(?=.*[a-z]) (?=.*[A-Z]) (?=.*[^\w\d\s]) - 检查特殊字符
  • |(?=.*[\d]) (?=.*[A-Z]) (?=.*[^\w\d\s])|(?=.*[\d]) (?=.*[a-z]) (?=.*[^\w\d\s]))\S{8,20} - 匹配 \S 中的任何字符(' 8 ' 除外空格)在末尾开始字符 20线 anchor

关于javascript - AngularJS 四分之三验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48816570/

相关文章:

angularjs - Angular 2 Http 测试多个连接

javascript - angular.js seo - 谷歌索引

javascript - 使用可选属性实例化类的正确方法

javascript - 如何在 React Router v6 中推送历史记录?我面临未找到消息

angularjs - 如何在 View 加载后获得触发指令?

javascript - 正则表达式匹配前面没有另一个字符串的任何字符串

c# - 在正则表达式匹配/替换模式上需要一些帮助

regex - 正则表达式拆分 : FutureWarning: split() requires a non-empty pattern match

javascript - javascript 原型(prototype)继承如何用于数组、函数

javascript - 如果两个 promise 同时解决,这是否可能是竞争条件?