[英]AngularJS - Invalid Regular Expression
I'm using this RegEx to validate the password entered. 我正在使用此RegEx验证输入的密码。 The password needs to have at least 1 capital alphabet, 1 number and 1 symbol:
密码必须至少包含1个大写字母,1个数字和1个符号:
/(?=.*?\d)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[^a-zA-Z\d])/
I'm using the RegEx along with ng-pattern
in an type="password"
input. 我在
type="password"
输入中使用RegEx和ng-pattern
。 It works fine when entered Mike123@
or Mike123*
. 输入
Mike123@
或Mike123*
。 But it throws the following error when entering Mike123***
: 但是在输入
Mike123***
时会引发以下错误:
SyntaxError: Invalid regular expression: /^Mik123***$/: Nothing to repeat
The RegEx works fine here: https://regex101.com/r/j0O4aw/1 . RegEx在这里工作正常: https : //regex101.com/r/j0O4aw/1 。 Code where it's being used:
使用代码:
<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>
How should I resolve this? 我该如何解决?
From the example. 从示例。
The “ id=regex
” contains the regex to match. “
id=regex
”包含要匹配的正则表达式。 The “ id=input
” contains the string to check against the regex. “
id=input
”包含用于检查正则表达式的字符串。
<script>
angular.module('ngPatternExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.regex = '\\d+';
}]);
</script>
followed by : 其次是 :
<div ng-controller="ExampleController">
<form name="form">
<label for="regex">Set a pattern (regex string): </label>
<input type="text" ng-model="regex" id="regex" />
<br>
<label for="input">This input is restricted by the current pattern:
</label>
<input type="text" ng-model="model" id="input" name="input" ng-pattern="regex" /><br>
<hr>
input valid? = <code>{{form.input.$valid}}</code><br>
model = <code>{{model}}</code>
</form>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.