전문가처럼 암호 유효성 검사를 위한 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)
을 사용하지 않았습니다. (?=.*_)
을 제거하면 더 이상 하나의 밑줄을 전달하는 것이 필수가 아닙니다. 이제 특수 문자 전달은 선택 사항입니다. (?!.* )
을 제거함으로써 공간 사용도 선택 사항이 되었습니다. 그게 다야. 😃 읽어주셔서 감사합니다.🎉
Reference
이 문제에 관하여(전문가처럼 암호 유효성 검사를 위한 Regex 패턴 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rasaf_ibrahim/write-regex-password-validation-like-a-pro-5175텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)