首页 文章

模式密码javascript

提问于
浏览
1

我正在研究一个具有以下要求的密码模式:

  • 最小字符= 6

  • 最大字符= 64

  • 最小1个小写字符

  • 最小1个大写字符

  • 最少1个号码

  • 最少1个特殊字符

我正在使用这个正则表达式:

var passReg = /^(?=^[ -~]{6,64}$)(?=.*([a-z][A-Z]))(?=.*[0-9])(.*[ -/|:-@|\[-`|{-~]).+$/;

但是,它没有按预期工作 .

2 回答

  • 0

    你一定在寻找这个正则表达式:

    ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[ -/:-@\[-`{-~]).{6,64}$
    

    demo

    这是解释:

    • ^ - 字符串的开头

    • (?=.*[a-z]) - 需要小写字母的正面预测

    • (?=.*[A-Z]) - 需要大写字母的正面预测

    • (?=.*[0-9]) - 要求数字的正面预测

    • (?=.*[ -/:-@\[- { - 〜])` - 要求特殊字符的正面预测

    • .{6,64} - 任何字符(但换行符),6到64次出现

    • $ - 字符串结束 .

  • 0

    考虑特殊的非空白字符 . 我认为这是完整列表:

    ! “#$%&'()*, - . / :; <=>?@ [\ _] ^ _` {|}〜

    试试这个:

    var passReg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!"#$%&'()*+,-.\/:;<=>?\\@[\]^_`{|}~]).{6,64}$/;
    

    查看特殊字符的后向引用 . 在字符集中,必须转义像\和]之类的字符 .

相关问题