Ted's Codding study

정규표현식 - 비밀번호 복잡성 검증 예제 본문

JavaScript

정규표현식 - 비밀번호 복잡성 검증 예제

Ted93 2024. 6. 5. 22:18

1. 비밀번호 복잡성 검증

  • 비밀번호 정책을 강화하기 위해, 대문자, 소문자, 숫자, 특수 문자가 각각 최소 하나씩 포함되어야 하며, 전체 길이가 8자 이상

정규표현식 : /^(?=.[a-z])(?=.[A-Z])(?=.\d)(?=.[^\da-zA-Z]).{8,}$/

function validatePassword(password) {
  const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^\\da-zA-Z]).{8,}$/;
  console.log(regex.test(password));
}
validatePassword('Password123!'); // true
validatePassword('password123!'); // false
validatePassword('Password123'); // false
validatePassword('Password!'); // false

^(?=.[a-z])

  • 어떠한 문자든지 여러개 작성
  • 반드시 최소 한개의 소문자를 포함해서 작성

 

(?=.*[A-Z])

  • 위와 동일하지만 최소 한 개의 대문자를 포함하여 작성

 

(?=.*\d)

  • 위와 동일하지만 최소 한 개의 숫자를 포함하여 작성

 

(?=.*[^\da-zA-Z])

  • 숫자, 영문자(대, 소문자)를 제외한 문자 중(즉, 특수기호를 의미) 한 개를 반드시 포함
  • 최소 한 개 이상의 특수기호를 포함하여 작성

 

.{8,}$

  • 총 길이가 최소 8자 이상

 

2. 비밀번호 복잡성 검증

  • 비밀번호 6-10자 이내 대문자, 소문자, 숫자가 각각 최소 하나씩 포함

정규표현식 : /^(?=.[a-z])(?=.[A-Z])(?=.*\d).{6,10}$/

function validatePassword2(password) {
  const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{6,10}$/;
  console.log(regex.test(password));
}
validatePassword2('Pass12'); // true
validatePassword2('P1assWd2'); // true
validatePassword2('Pass1'); // false - 길이 부족
validatePassword2('Pass1231234'); // false - 길이 초과
validatePassword2('pass1231234'); // false - 길이 초과 & 대문자 사용 X

(?=.[a-z])

  • 문자열 내에 최소 한 개의 소문자가 포함

 

(?=.[A-Z])

  • 문자열 내에 최소 한 개의 대문자가 포함

 

(?=.*\d)

  • 문자열 내에 최소 한 개의 숫자가 포함

 

.{6,10}

  • 전체 길이가 최소 6자리에서 최대 10자리

 

 

노션으로 보고 싶다면?

https://short-echidna-b16.notion.site/d001a63d66564a2191bce9793ebab711?pvs=4

 

정규표현식 - 비밀번호 복잡성 검증 예제 | Notion

1. 비밀번호 복잡성 검증

short-echidna-b16.notion.site