Mac*_*ade 57
^.*(?=.{8,})(?=.*[a-zA-Z])(?=.*\d)(?=.*[!#$%&? "]).*$
---
^.* : Start
(?=.{8,}) : Length
(?=.*[a-zA-Z]) : Letters
(?=.*\d) : Digits
(?=.*[!#$%&? "]) : Special characters
.*$ : End
Run Code Online (Sandbox Code Playgroud)
试试这个
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{6,20})
Run Code Online (Sandbox Code Playgroud)
上述正则表达式的描述:
( # Start of group
(?=.*\d) # must contains one digit from 0-9
(?=.*[a-z]) # must contains one lowercase characters
(?=.*[\W]) # must contains at least one special character
. # match anything with previous condition checking
{8,20} # length at least 8 characters and maximum of 20
) # End of group
Run Code Online (Sandbox Code Playgroud)
"/ W"将增加可用于密码和坑的字符范围可以更安全.
您可以轻松地完成每个要求(例如,最少8个字符:.{8,}将匹配8个或更多字符).
要组合它们,您可以使用"正向前瞻"将多个子表达式应用于相同的内容.类似于(?=.*\d.*).{8,}将一个(或多个)数字与前瞻和8个或更多字符匹配的东西.
所以:
(?=.*\d.*)(?=.*[a-zA-Z].*)(?=.*[!#\$%&\?].*).{8,}
记住逃避元字符.
密码具有以下条件:
没有空白
'use strict';
(function() {
var foo = '3g^g$';
console.log(/^(?=.*\d)(?=(.*\W){2})(?=.*[a-zA-Z])(?!.*\s).{1,15}$/.test(foo));
/**
* (?=.*\d) should contain at least 1 digit
* (?=(.*\W){2}) should contain at least 2 special characters
* (?=.*[a-zA-Z]) should contain at least 1 alphabetic character
* (?!.*\s) should not contain any blank space
*/
})();
Run Code Online (Sandbox Code Playgroud)