전문가처럼 암호 유효성 검사를 위한 Regex 패턴 작성

✅다음 4가지 정규식 패턴은 거의 모든 암호 유효성 검사를 작성하는 데 도움이 될 수 있습니다.





패턴 1:



Password must contain one digit from 1 to 9, one lowercase letter, one uppercase letter, one special character, no space, and it must be 8-16 characters long.



/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*\W)(?!.* ).{8,16}$/



설명:

  • (?=.*[0-9])은 비밀번호가 1에서 9까지의 한 자리 숫자를 포함해야 함을 의미합니다.


  • (?=.*[a-z])은 암호에 소문자가 하나 포함되어야 함을 의미합니다.


  • (?=.*[A-Z])은 암호에 대문자가 하나 포함되어야 함을 의미합니다.


  • (?=.*\W)은 암호에 하나의 특수 문자가 포함되어야 함을 의미합니다.


  • .{8,16}은 암호 길이가 8-16자여야 함을 의미합니다. 정규식의 끝, $ 기호 바로 앞에 이것을 사용해야 합니다.

  • ^$은 무엇입니까?
    ^은 문자열의 시작을 나타냅니다. $은 문자열의 끝을 나타냅니다.

    ^$ 을 사용하지 않으면 정규식은 암호의 최대 길이를 결정할 수 없습니다. 위의 예에서 암호가 16자를 초과할 수 없다는 조건이 있으며 해당 조건이 작동하도록 하기 위해 ^$을 사용했습니다.

    최대 길이 제한 제거:

  • .{8,16} 대신 .{8,} 을 사용했다면 암호가 8자 이상이어야 함을 의미합니다. 따라서 비밀번호의 최대 길이를 확인하는 조건은 없습니다.


  • 숫자(숫자)를 허용하지 마십시오.

  • (?=.*[0-9]) 대신 (?!.*[0-9]) 을 사용하면 암호에 1-9의 숫자가 포함되지 않아야 함을 의미합니다((?=.*[0-9])과의 차이점은 ! 대신 = 사용)


    특수 문자를 허용하지 마십시오.

  • (?=.*\W) 대신 (?!.*\W) 을 사용했다면 암호에 특수 문자가 포함되지 않아야 함을 의미합니다.


    숫자(숫자)에 대한 대체 구문:

  • (?=.*\W) 대신 ! 을 사용할 수 있습니다. =은 또한 암호가 1에서 9까지의 한 자리 숫자를 포함해야 함을 의미합니다.



  • 패턴 2:



    Password must contain one digit from 1 to 9, one lowercase letter, one uppercase letter, one underscore but no other special character, no space and it must be 8-16 characters long.



    /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*_)(?!.*\W)(?!.* ).{8,16}$/
    
    



    패턴 1과의 차이점

  • 여기서는 (?=.*[0-9]) 에 없는 (?=.*\d) 을 사용했습니다.


  • (?=.*\d)은 암호에 밑줄을 포함해야 하지만 다른 특수 문자는 포함할 수 없음을 의미합니다.


  • 패턴 3:



    Password must contain one digit from 1 to 9, one lowercase letter, one uppercase letter, one underscore, no space and it must be 8-16 characters long. Usage of any other special character other than underscore is optional.



    /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*_)(?!.* ).{8,16}$/
    



    패턴 2와의 차이점

  • 여기서는 (?=.*_) 에 있던 Pattern 1 을 사용하지 않았습니다.


  • 하지만 여전히 (?=.*_)(?!.*\W)이 있습니다.


  • (?!.*\W) 만 제거하면 특수 문자가 선택 사항이 됩니다. 이제 하나의 밑줄이 필요하지만 다른 특수 문자는 선택 사항이므로 사용하거나 사용하지 않을 수 있습니다.


  • 패턴 4:



    Password must contain one digit from 1 to 9, one lowercase letter, one uppercase letter, and one underscore, and it must be 8-16 characters long. Usage of any other special character and usage of space is optional.



    /^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,16}$/
    



    패턴 3과의 차이점

  • 여기서는 Pattern 2 에 있던 (?=.*_)(?!.*\W) 을 사용하지 않았습니다.


  • (?=.*_) 을 제거하면 더 이상 하나의 밑줄을 전달하는 것이 필수가 아닙니다. 이제 특수 문자 전달은 선택 사항입니다.


  • (?!.* ) 을 제거함으로써 공간 사용도 선택 사항이 되었습니다.


  • 그게 다야. 😃 읽어주셔서 감사합니다.🎉

    좋은 웹페이지 즐겨찾기