javascript - 密码正则表达式,至少包含 2 个大写字母、2 个小写字母、2 个符号和 2 个任意顺序的数字

标签 javascript angularjs

当我将它与 RegEx() 一起使用时,这在 JavaScript 密码验证中不起作用:

(?=(.*\\d){2,})(?=(.*[A-Z]){2,})(?=(.*[a-z]){2,})(?=(.*[!@#$%^&*?]){2,})(?!.*[\\s])^.*

最佳答案

给你:
我使用的正则表达式是:

1) (?=(.\d){2}) --> 至少 2 位
2) (?=(.
[a-z]){2}) --> 至少 2 个小写字符
3) (?=(.[A-Z]){2}) --> 至少 2 个大写字符
4) (?=(.
[!@#$%]){2}) --> 至少2个特殊字符,可以是!、@、#、$、%中的任意一个

angular.module('myApp', [])
  .controller('MyController', function($scope) {
    $scope.password = '';

    // (?=(.*\d){2}) --> atleast 2 digits
    // (?=(.*[a-z]){2}) --> atleast 2 lower case chars
    // (?=(.*[A-Z]){2}) --> atleast 2 upper case chars
    // (?=(.*[!@#$%]){2}) --> atleast 2 special chars, can be any one of !, @, #, $, %
    $scope.pattern = /(?=(.*\d){2})(?=(.*[a-z]){2})(?=(.*[A-Z]){2})(?=(.*[!@#$%]){2})/;
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="MyController">

  <form name="myForm">
    <label>Enter password: </label>
    <input type="password" name="password" ng-model="password" ng-pattern="pattern">
    <span style="color:red" class="error" ng-show="myForm.password.$error.pattern">Password is not valid, doesn't match the provided pattern.</span>
  </form>

</div>

关于javascript - 密码正则表达式,至少包含 2 个大写字母、2 个小写字母、2 个符号和 2 个任意顺序的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42453324/

相关文章:

javascript - 对绑定(bind)元素的 Angular 访问

css - ionic 菜单抽屉 - 如何禁用特定 Controller /状态

javascript - 在 JQuery ui 自动完成中显示图像

javascript - 通过 JavaScript 检索所有已安装打印机的列表

javascript - 使用 selectize multiselect 将值传递给数据库

javascript - AngularJS - 使用 ng-repeat 根据数字打印输入

javascript - Angular 服务解耦

php - 从mysql绘制数据

javascript - 如何使用 Tampermonkey 或 Stylish 将名称为 x.png 的所有图像更改为 x.png?

javascript - 嵌套 ng-repeat 中 $last 的别名始终返回 true