我想在使用Regex提交表单之前验证密码,我想知道以下PasswordValidator设置的等效正则表达式是什么:
UserManager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = true,
RequireDigit = false,
RequireLowercase = true,
RequireUppercase = true,
};
即时使用AngujarJS模式验证。 例如:
<input type="password" class="form-control" name="inputPassword" ng-minlength="6" np-pattern="/^(?=.*[a-z])(?=.*[A-Z])(?=.*(_|[^\w])).+$/" ng-model="userData.Password" />
<p class="alert-danger" ng-show="userDetails.inputPassword.$error.pattern">The Password is invalid</p>
但它完全忽略了它。
非常感谢!
更新1 在接受的答案的帮助下,我来到以下正则表达式^(?=。 [az])(?=。 [AZ])(?=。*(_ | [^ \ w]) )。+ $并且将长度验证添加为ng-minlength =“6”由于某种原因,模式验证在IE9上不起作用,其中验证阻止用户保存,使其完全无用。
更新2
通过stribizhev建议,将任意符号正则表达式更改为(?=。* [\ W_])修复了IE9验证,因此它在IE9中100%工作,最终代码为
<input type="password" class="form-control" name="inputPassword" ng-minlength="6" ng-pattern="/^(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_]).+$/" ng-model="userData.Password" />
<p class="alert-danger" ng-show="userDetails.inputPassword.$error.pattern || userDetails.inputPassword.$error.minlength">The Password is invalid</p>
非常感谢你
答案 0 :(得分:1)
^(?=.*[!@#$&*])(?=.*[a-z])(?=.*[A-Z]).{6,}$
我在SO上找到答案会给你提示如何构建自己的正则表达式https://stackoverflow.com/a/5142164/2892208