Search code examples
javascriptregexpasswords

pattern password javascript


I'm working on a pattern for a password with the following requirements:

  1. Min character = 6
  2. Max character = 64
  3. Min 1 lowercase character
  4. Min 1 uppercase character
  5. Min 1 number
  6. Min 1 special characters

I am using this regex:

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

However, it does not work as expected.


Solution

  • You must be looking for this regex:

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

    See demo

    Here is explanation:

    • ^ - Beginning of string
    • (?=.*[a-z]) - A positive look-ahead to require a lowercase letter
    • (?=.*[A-Z]) - A positive look-ahead to require an uppercase letter
    • (?=.*[0-9]) - A positive look-ahead to require a digit
    • (?=.*[ -/:-@\[-{-~])` - A positive look-ahead to require a special character
    • .{6,64} - Any character (but a newline), 6 to 64 occurrences
    • $ - End of string.