RISK IT

[TIL26_23.2.3.] [Javascript] 정규표현식 정리 본문

IT/TIL

[TIL26_23.2.3.] [Javascript] 정규표현식 정리

nomoremystery 2023. 2. 3. 18:26
반응형

정규표현식

내가 작성한 정규표현식

비밀번호

const pwValidation = new RegExp(
  /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@$#$%^&*\-?])[A-Za-z\d~!@$#$%^&*\-?]{8,}/
);
  • ^: 문자열 시작
  • (?=: positive look-ahead 그룹의 시작 (여기서 ?는 optional을 의미하지 않는다.)
  • .*?: non-greedy matching (최소한으로 매칭되는 결과 찾기)(여기서도 ?는 optional을 의미하지 않는다.)
  • [a-z]: a-z 중 하나를 포함하는 문자
  • ): look-ahead 그룹의 종료
  • {8,}: 8자 이상
  • $: 문자열 끝

결과적으로, 소문자 알파벳, 대문자 알파벳, 모든 숫자, 특수문자 "~!@#$%^&*-?"를 포함하여 시작하고, 그 문자들로 이루어진 8자리 이상의 조합 이라는 뜻이 된다.

비밀번호 정규표현식 도식화
정리는 했지만 아직 look-ahead의 표현이 이해가 잘 되지 않는다.

이메일

const emailValidation = new RegExp(
  /^[a-zA-Z0-9+-\_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/
);
  • ^ 문자열 시작
  • [a-zA-Z0-9+-\_.] a-z, A-Z, 0-9, +-_, . 중 하나 포함
  • +@ 그 다음 골뱅이 와야함
  • [a-zA-Z0-9-]: "a"-"z", "A"-"Z", "0"-"9", "-" 중 하나 포함
  • +\. 그 다음 . 와야 함
  • "a"-"z", "A"-"Z", "0"-"9", "-", "." 중 하나 포함
  • $ 문자열 끝

이메일 정규표현식 도식화

참고링크

참고링크-정리 잘 한 정규표현식 블로그
참고링크-stackoverflow
참고링크-정규표현식 lookahed,lookbehind (고급문법)
참고링크-정규표현식 도식화 사이트

반응형