직전에 쓴 글을 확장해보겠습니다.
2024.09.06 - [FrontEnd/Java Script] - [REGEX] 저장해두고 사용하세요 자바스크립트 정규식
이전 글에서 소개했던 자주 쓰는 정규식을 자세하게 뜯어보겠습니다.
1. YY.MM.DD 형식의 생년월일 포맷
/^[0-9]{2}\.(0[1-9]|1[0-2])\.(0[1-9]|[12][0-9]|3[01])$/
- ^[0-9]{2}: 두 자리 숫자로 시작하며, 연도(YY) 뒤2자리를 나타냅니다.
- \.: 점(.)이 날짜 구분 기호로 사용됩니다.
- (0[1-9]|1[0-2]): 월(Month)을 나타내며, 01부터 12까지의 숫자를 허용합니다.
- 0[1-9]: 01부터 09까지
- 1[0-2]: 10부터 12까지
- \.: 두 번째 점(.)도 구분 기호로 사용됩니다.
- (0[1-9]|[12][0-9]|3[01]): 일(Day)을 나타냅니다.
- 0[1-9]: 01부터 09까지
- [12][0-9]: 10부터 29까지
- 3[01]: 30, 31일을 허용
- $: 문자열의 끝을 나타내며, 입력 값이 이 패턴과 정확히 일치해야 함을 보장합니다.
- 연도를 4자리로 하고싶으면 [0-9]{4}로 표현할 수 있습니다
- 앞 두자리가 19또는 20으로 표현할 수 있도록 제한할 수도 있습니다. (19|20)[0-9]{2} 이렇게요
2. 이메일 주소 정규표현식
/^[\w-.]+@([\w-]+\.)+[\w-]{2,4}$/
- ^[\w-.]+: 알파벳, 숫자, 밑줄(_), 하이픈(-), 점(.)을 포함한 문자 그룹으로, 최소 하나 이상의 문자.
- @: 이메일의 필수적인 '@' 문자.
- ([\w-]+\.)+: 도메인 부분으로, 알파벳, 숫자, 밑줄, 하이픈을 포함한 문자 그룹과 점(.)으로 이어지며, 도메인이 여러 레벨일 수 있음.
- [\w-]{2,4}$: 최종 도메인의 길이가 2에서 4글자 사이여야 함 (예: .com, .net).
3. 한국의 전화번호 정규표현식
/^01([016789])-?([0-9]{3,4})-?([0-9]{4})$/
- ^01([016789]): 전화번호는 01로 시작하고, 그 뒤에 0, 1, 6, 7, 8, 9 중 하나가 와야 합니다.
- -?: 하이픈(-)이 있을 수도 있고, 없을 수도 있습니다.
- ([0-9]{3,4}): 두 번째 부분은 숫자 3자리 또는 4자리로 구성됩니다.
- -?: 다시 하이픈이 있을 수도, 없을 수도 있습니다.
- ([0-9]{4})$: 마지막 부분은 숫자 4자리로 끝납니다.
4. 아이디 제한 정규표현식
/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/
- ^: 문자열의 시작.
- (?=.*[A-Za-z]): 문자열에 최소 하나 이상의 영문자가 포함되어 있어야 합니다.
- (?=.*\d): 최소 하나 이상의 숫자가 포함되어 있어야 합니다.
- [A-Za-z\d]{8,}: 영문자와 숫자가 8자 이상이어야 합니다.
- $: 문자열의 끝.
- 여기에서 조금 확장한다면, 대문자를 허용하지 않을 수도 있고, 특수문자를 받도록 하여 비밀번호 검증 식으로 사용할 수도 있습니다.
5. 카드번호 정규표현식
/^(?:4\d{3}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}|5[1-5]\d{2}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}|2(?:2[2-9]\d|[3-6]\d{2}|7(?:[01]\d|20))[- ]?\d{3}[- ]?\d{3}[- ]?\d{4}|3[47]\d{2}[- ]?\d{6}[- ]?\d{5}[- ]?\d{5}|62\d{2}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}|\d{4}[- ]?\d{6}[- ]?\d{5}|35\d{2}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}|\d{12}(?:\d{3})?)$/
- ^: 문자열의 시작.
- 4\d{3}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}: 비자(Visa) 카드 번호 (4로 시작, 16자리 숫자).
- 5[1-5]\d{2}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}: 마스터카드(MasterCard) 번호 (51~55로 시작, 16자리 숫자).
- 2(?:2[2-9]\d|[3-6]\d{2}|7(?:[01]\d|20))[- ]?\d{3}[- ]?\d{3}[- ]?\d{4}: 마스터카드 번호의 또 다른 패턴 (2221~2720 구간).
- 3[47]\d{2}[- ]?\d{6}[- ]?\d{5}: 아메리칸 익스프레스(American Express) 카드 번호 (34 또는 37로 시작, 15자리 숫자).
- 62\d{2}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}: 중국의 유니온페이(UnionPay) 카드 번호.
- 35\d{2}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}: JCB 카드 번호 (35로 시작, 16자리 숫자).
- \d{12}(?:\d{3})?: 기타 카드 번호, 12자리 또는 15자리 숫자.
- $: 문자열의 끝.
- 아무번호나 넣었을때 다 인증되지 않고, 번호 패턴에 따라서 어떤 카드사의 카드번호인지 알 수 있는 정규식이 포함되어있어요 이 정규식을 잘 잘라서 쓴다면 어떤 카드사인지 표시해주는 기능을 넣을 수 있을거예요
반응형
'FrontEnd > Java Script' 카테고리의 다른 글
[REGEX] 저장해두고 사용하세요 자바스크립트 정규식 (0) | 2024.09.06 |
---|---|
[Hoisting] let, const로 선언한 변수도 호이스팅이 될까? (0) | 2024.08.29 |
[this] 5년만에 다시보는 자바스크립트의 this (0) | 2024.08.28 |
ty vs got: 어떤 라이브러리를 선택할까? (0) | 2024.08.12 |
# Worklet (0) | 2023.07.15 |