我正在研究一个具有以下要求的密码模式:
最小字符= 6
最大字符= 64
最小1个小写字符
最小1个大写字符
最少1个号码
最少1个特殊字符
我正在使用这个正则表达式:
var passReg = /^(?=^[ -~]{6,64}$)(?=.*([a-z][A-Z]))(?=.*[0-9])(.*[ -/|:-@|\[-`|{-~]).+$/;
但是,它没有按预期工作 .
你一定在寻找这个正则表达式:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[ -/:-@\[-`{-~]).{6,64}$
见demo
这是解释:
^ - 字符串的开头
^
(?=.*[a-z]) - 需要小写字母的正面预测
(?=.*[a-z])
(?=.*[A-Z]) - 需要大写字母的正面预测
(?=.*[A-Z])
(?=.*[0-9]) - 要求数字的正面预测
(?=.*[0-9])
(?=.*[ -/:-@\[- { - 〜])` - 要求特殊字符的正面预测
(?=.*[ -/:-@\[-
.{6,64} - 任何字符(但换行符),6到64次出现
.{6,64}
$ - 字符串结束 .
$
考虑特殊的非空白字符 . 我认为这是完整列表:
! “#$%&'()*, - . / :; <=>?@ [\ _] ^ _` {|}〜
试试这个:
var passReg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!"#$%&'()*+,-.\/:;<=>?\\@[\]^_`{|}~]).{6,64}$/;
查看特殊字符的后向引用 . 在字符集中,必须转义像\和]之类的字符 .
2 回答
你一定在寻找这个正则表达式:
见demo
这是解释:
^
- 字符串的开头(?=.*[a-z])
- 需要小写字母的正面预测(?=.*[A-Z])
- 需要大写字母的正面预测(?=.*[0-9])
- 要求数字的正面预测(?=.*[ -/:-@\[-
{ - 〜])` - 要求特殊字符的正面预测.{6,64}
- 任何字符(但换行符),6到64次出现$
- 字符串结束 .考虑特殊的非空白字符 . 我认为这是完整列表:
试试这个:
查看特殊字符的后向引用 . 在字符集中,必须转义像\和]之类的字符 .