我正在研究具有以下要求的密码模式:
- 最小字符数= 6
- 最大字符数= 64
- 最小1个小写字符
- 最小1个大写字符
- 最小1个数
- 最小1个特殊字符
我正在使用这个正则表达式:
var passReg = /^(?=^[ -~]{6,64}$)(?=.*([a-z][A-Z]))(?=.*[0-9])(.*[ -/|:-@|[-`|{-~]).+$/;
你必须寻找这个正则表达式:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[ -/:-@[-`{-~]).{6,64}$
看到演示
解释如下:
-
^
-字符串 开头 -
(?=.*[a-z])
-需要小写字母 的正面前瞻性 -
(?=.*[A-Z])
-需要大写字母 的正面前瞻性 -
(?=.*[0-9])
-正向前看需要一个数字 -
(?=.*[ -/:-@[-
{-~]) ' -需要一个特殊字符 -
.{6,64}
-任何字符(换行符除外),出现6到64次 -
$
-字符串结束。
是特殊的非空白字符。我认为这是一个完整的列表:
!# $ % &'() * +, -。/:;& lt;=> ?@ [] ^ _ ' {|} ~
试试这个:
var passReg = /^(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!"#$%&'()*+,-./:;<=>?\@[]^_`{|}~]).{6,64}$/;
查看后面的参考以查找特殊字符。在字符集中,像和]这样的字符必须转义。
输入密码并提交[8 ~ 25个字符,至少包含一个小写字母、一个大写字母、一个数字和一个特殊字符]
/^(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*s).{8,25}$/;