模式密码javascript

模式密码javascript,javascript,regex,passwords,Javascript,Regex,Passwords,我正在研究一种密码模式,它具有以下要求: 最小字符数=6 最大字符数=64 最小1个小写字符 最小1个大写字符 最小1号 最小1个特殊字符 我正在使用这个正则表达式: var passReg = /^(?=^[ -~]{6,64}$)(?=.*([a-z][A-Z]))(?=.*[0-9])(.*[ -/|:-@|\[-`|{-~]).+$/; ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[ -/:-@\[-`{-~]).{6,64}$ 但是,它不能按预期工

我正在研究一种密码模式,它具有以下要求:

  • 最小字符数=6
  • 最大字符数=64
  • 最小1个小写字符
  • 最小1个大写字符
  • 最小1号
  • 最小1个特殊字符
  • 我正在使用这个正则表达式:

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

    但是,它不能按预期工作。

    您必须查找此正则表达式:

    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次
    • $
      -字符串结束

    考虑特殊的非空白字符,我认为这是一个列表:

    !“#$%&'()*+,-./: ;<=>?@[\]^{124}~

    试试这个:

    var passReg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!"#$%&'()*+,-.\/:;<=>?\\@[\]^_`{|}~]).{6,64}$/;
    
    var passReg=/^(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[!”、-.\/:;?\@[\]^{6,64}$/;
    
    查看特殊字符的后向引用。在字符集中,像\和]这样的字符必须转义