Javascript AngularJS-无效的正则表达式
我使用这个正则表达式来验证输入的密码。密码至少需要有1个大写字母、1个数字和1个符号: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
/(?=.*?\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输入字段中的问题。这是没有必要的,把它移走就行了。谢谢你们的帮助。