Ted's Codding study
정규표현식 - 실습 간단한 패턴 만들기 본문
JavaScript
정규표현식 - 실습 간단한 패턴 만들기 Ted93 2024. 6. 4. 16:58
1. 이메일 주소 검증
- 이메일 주소가 유효한지 확인
정규표현식 : /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/
function validateEmail(email) {
const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/;
console.log(regex.test(email));
}
validateEmail('ted@gmail.com'); // true
validateEmail('tedgmail.com'); // false
정규표현식을 하나씩 자세히 보면
^[a-zA-Z0-9._-]+
- ^ 뒤의 문자로 시작
- [소문자, 대문자, 숫자, 마침표, 언더스코어, 하이픈] 중 하나
- + 1개 이상 작성
@
- 앞의 문자들 뒤에 @ 기호 첨부
^[a-zA-Z0-9._-]+ 위의 설명과 동일한 내용
\.[a-zA-Z]{2,6}
- 도메인의 TLD(최상위 도메인)는 마침표.으로 시작
- 알파벳(대문자, 소문자 모두 가능) 2~6개로 첨부
2. 전화번호 포맷 매칭
- 다양한 전화번호 포맷을 매칭하기 위한 정규표현식
정규표현식 : /^(\+\d{1,3}\s?)?(\(\d{3}\)|\d{3})[\s.-]?\d{3}[\s.-]?\d{4}$/
function validateNumber(number) {
const regex = /^(\\+\\d{1,3}\\s?)?(\\(\\d{3}\\)|\\d{3})[\\s.-]?\\d{3}[\\s.-]?\\d{4}$/;
console.log(regex.test(number));
}
validateNumber('+82 123-456-7890'); // true
validateNumber('123-456-7890'); // true
validateNumber('(123)-456-7890'); // true
validateNumber('1234567890'); // true
정규표현식을 하나씩 자세히 보면
^(\+\d{1,3}\s?)?
- + 플러스 기호로 시작
- 숫자가 1개 3개 사이로 작성
- /s - space(공백)가 없거나 최대 한번만
- 전체 국제번호 표기가 없거나 최대 한번만 작성
(\(\d{3}\)|\d{3})
- \( - 열리는 소괄호 리터럴 문자
- \d{3} - 숫자 3자리 작성
- \) - 닫히는 소괄호 리터럴 문자
- | - OR(또는)
- \d{3} - 숫자 3자리 작성
[\s.-]?
- 공백, 마침표, 하이픈 중 하나를 택 [abc]
\d{3}[\s.-]?
- 위에 설명 참고
\d{4}$
- 정규표현식의 끝은 숫자 4자리
- ※ \d의 d는 decimal 10진수(숫자)를 의미
3. URL 인식
- URL을 인식하기 위한 정규표현식은 다음과 같습니다.
정규표현식 : /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-])\/?$/
function validateURL(url) {
const regex = /^(https?:\\/\\/)?([\\da-z.-]+)\\.([a-z.]{2,6})([\\/\\w .-]*)*\\/?$/;
console.log(regex.test(url));
}
validateURL('<https://naver.com>');
validateURL('<http://naver.com>');
validateURL('naver.com');
validateURL('<http://naver.com/path/to/>');
정규표현식을 하나씩 자세히 보면
^(https?:\/\/)?
- \/\/ 는 더블유가 아니고 \ / \ / 슬래시 기호를 사용하기 위함임
- https:// 또는 http://로 시작하는 것이 선택적
([\da-z.-]+)
- \d는 [0-9]와 같은 표현임
- 숫자, 알파벳(소문자), 점, 하이픈 구성이 1개 이상
\.([a-z.]{2,6})
- 리터럴 문자 마침표(.) 뒤에 알파벳(소문자)와 점 중에 2 ~ 6개 사이의 작성
([\/\w .-])
- \w는 [a-zA-Z0-9_]와 같은 표현임
- 리터럴 문자 슬래시(/) 또는 (알파벳, 숫자, 언더스코어) 또는 공백 또는 마침표 또는 하이픈(-)이 0회 이상 작성
\/?$
- URL의 종료는 /로 종료를 허용
- 리터럴 슬래시가 없거나 최대 하나만 작성
노션으로 보고 싶다면?
https://short-echidna-b16.notion.site/778f30f6dc2746c9961791b94e5ded3a?pvs=4