Javascript AngularJS-无效的正则表达式

Javascript AngularJS-无效的正则表达式,javascript,angularjs,regex,Javascript,Angularjs,Regex,我使用这个正则表达式来验证输入的密码。密码至少需要有1个大写字母、1个数字和1个符号: /(?=.*?\d)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z\d])/ 我在type=“password”输入中使用正则表达式和ng模式。当输入Mike123@或Mike123*时,它工作正常。但在输入Mike123***时会抛出以下错误: SyntaxError: Invalid regular expression: /^Mik123***$/: Nothing to

我使用这个正则表达式来验证输入的密码。密码至少需要有1个大写字母、1个数字和1个符号:

/(?=.*?\d)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z\d])/
我在
type=“password”
输入中使用正则表达式和
ng模式。当输入
Mike123@
Mike123*
时,它工作正常。但在输入
Mike123***
时会抛出以下错误:

SyntaxError: Invalid regular expression: /^Mik123***$/: Nothing to repeat
正则表达式在这里工作正常:。正在使用的代码:

<div class="input_fieldholder">
  <input type="password"
  class="m-b-0 login_typefield"
  placeholder="Password"
  name="password"
  ng-class="{ form_error: vm.formObject.password.$dirty && vm.formObject.password.$invalid }"
  ng-model="vm.password"
  ng-minlength="6"
  ng-change="vm.onChangePassword()"
  ng-pattern="/(?=.*?\d)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z\d])/"
  required
  ng-attr-autofocus="{{ vm.autoFocus }}">

  <div class="text-left m-t-3">
    <div ng-show="vm.formObject.password.$dirty && vm.formObject.password.$error.required" class="text-danger">{{ 'PASSWORD_REQUIRED_VALIDATION' | translate }}</div>
    <div ng-show="vm.formObject.password.$dirty && vm.formObject.password.$error.minlength" class="text-danger">{{ 'PASSWORD_LENGTH_VALIDATION' | translate }}</div>
    <div ng-show="vm.formObject.password.$dirty && vm.formObject.password.$error.pattern" class="text-danger">{{ 'PASSWORD_PATTERN_VALIDATION' | translate }}</div>
  </div>
</div>

<div class="input_fieldholder">
  <input type="password"
  class="m-t-10 m-b-0 login_typefield"
  placeholder="Confirm Password"
  name="confirmPassword"
  ng-class="{ form_error: vm.formObject.confirmPassword.$dirty && vm.formObject.confirmPassword.$invalid }"
  ng-model="vm.confirmPassword"
  ng-pattern="vm.password"
  ng-change="vm.onChangePassword()"
  required
  compare-field-selector="[name='password']">
  <div class="text-left m-t-3">
    <span ng-show="vm.formObject.confirmPassword.$dirty && vm.formObject.confirmPassword.$invalid" class="text-danger">{{'PASSWORD_CONFIRM_VALIDATION' | translate }}</span>
  </div>
</div>

{{'密码_需要验证|翻译}
{{'密码{长度}验证{翻译}
{{'密码{模式}验证{翻译}
{{'PASSWORD_CONFIRM_VALIDATION'| translate}}
如何解决此问题?

来自示例

id=regex
”包含要匹配的regex。 “
id=input
”包含要对照正则表达式检查的字符串

<script>
  angular.module('ngPatternExample', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.regex = '\\d+';
  }]);
</script>
从这个例子

id=regex
”包含要匹配的regex。 “
id=input
”包含要对照正则表达式检查的字符串

<script>
  angular.module('ngPatternExample', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.regex = '\\d+';
  }]);
</script>

您确实在反转要搜索的模式和字符串。@GaétanRYCKEBOER是对的!您得到的错误表明,输入的密码确实被视为要匹配的正则表达式。。。我不知道。。。ng模式是来自框架还是在onChangePassword()中使用它?对于后面的问题,您需要向我们显示代码,以便我们能够确定问题所在。
ng pattern=“vm.password”
,这是confirmPassword输入字段中的问题。这是没有必要的,把它移走就行了。谢谢你们的帮助。你们一定是颠倒了要搜索的模式和字符串。@GaétanRYCKEBOER是对的!您得到的错误表明,输入的密码确实被视为要匹配的正则表达式。。。我不知道。。。ng模式是来自框架还是在onChangePassword()中使用它?对于后面的问题,您需要向我们显示代码,以便我们能够确定问题所在。
ng pattern=“vm.password”
,这是confirmPassword输入字段中的问题。这是没有必要的,把它移走就行了。谢谢你们的帮助。