密码强度问题:正则表达式

时间:2017-02-18 14:40:47

标签: angularjs regex

标记

<form ng-submit="doRegister(registerForm);" novalidate name="registerForm">
    <input type="password" name="Password" ng-model="register.Password" 
        ng-pattern="/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/"/>
    <span ng-show="registerForm.Password.$error.pattern" class="help-block">
        min 1 lower char, 1 upper char, 1 digit and one special char 
    </span>

    <button type="submit" ng-disabled="registerForm.$invalid" >
        Submit
    </button>
</form>

我正在测试密码强度,最小1个下角字符和1个上角字符和1个数字以及一个特殊字符

  

我正在测试此字符串:a1A@s.com //失败

     

我正在测试这个字符串:   12345aA! //传递

我做错了吗?

1 个答案:

答案 0 :(得分:2)

它失败了,因为@在最后一个前瞻中不属于你的角色类。您还可以将正则表达式简化为:

/^(?=.*[a-z])(?=.*[a-z])(?=.*[0-9])(?=.*[@!$#%]).{3,}$/

RegEx Demo