1. 정규식(RegEx)이란?
정규식은 문자열에서 특정 패턴을 찾거나, 검증하거나, 변환하는 데 사용
- 표현식 작성법:
/패턴/플래그 - 주요 용도:
- 문자열 검색 (패턴 매칭)
- 문자열 형식 검증 (이메일, IP 주소 등)
- 문자열 치환 (검색 후 변환)
2. test란?
정규식 객체의 메서드로, 문자열이 정규식과 매칭되는지 여부를 확인
결과:
true(매칭됨) 또는false(매칭되지 않음)형식:
정규식.test(문자열)예제:
regex = /^hello/; // 'hello'로 시작하는지 확인 console.log(regex.test('hello world')); // true console.log(regex.test('world hello')); // false const regex = /hello/; // 'hello'라는 문자열이 포함되었는지 확인 const regex = /world$/; // 'world'로 끝나는지 확인 const regex = /^\d+$/; // 숫자만 포함되었는지 확인 const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; const regex = /\s/; // 공백이 포함되었는지 확인 const regex = /apple/; //특정 문자열이 여러 번 포함되었는지 확인i.test(this.regex);플래그 활용:
대소문자 무시: i
여러 줄 매칭: m
3. 정규식에서 자주 사용하는 기호
| 기호 | 설명 | 예시 |
|---|---|---|
^ |
문자열의 시작 | /^10/ → 10으로 시작하는 문자열 |
$ |
문자열의 끝 | /255$/ → 255로 끝나는 문자열 |
. |
임의의 한 문자 | /a.b/ → a와 b 사이에 아무 문자 하나 |
\ |
특수 문자를 문자 그대로 표현 | /\./ → . (실제 점) |
[] |
문자 집합 (하나 선택) | /[abc]/ → a, b, c 중 하나 매칭 |
- |
범위 지정 | /[0-9]/ → 숫자 0~9 매칭 |
| ` | ` | OR 조건 |
? |
0번 또는 1번 등장 (선택적) | /a?b/ → b 또는 ab 매칭 |
* |
0번 이상 등장 | /a*b/ → b, ab, aab 매칭 |
+ |
1번 이상 등장 | /a+b/ → ab, aab, aaab 매칭 |
{n,m} |
n번 이상 m번 이하 등장 | /a{2,4}/ → aa, aaa, aaaa 매칭 |
4. 예제
IP 주소 검증 정규식
const ipPattern = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
- 목적: IPv4 주소 형식(0.0.0.0 ~ 255.255.255.255)을 검증
- 구성:
(25[0-5]): 숫자 250~255(2[0-4][0-9]): 숫자 200~249([01]?[0-9][0-9]?): 숫자 0~199\.: 각 숫자를 점으로 구분^와$: 문자열의 시작과 끝
- 사용:
const isValidIP = ipPattern.test('192.168.0.1'); // true const isNotValidIP = ipPattern.test('256.1.1.1'); // false
정규식이란?
- 특정 문자열 패턴을 찾고, 검증하고, 변환하는 도구.
test메서드란?- 정규식과 문자열이 매칭되는지
true/false로 반환.
- 정규식과 문자열이 매칭되는지
IP 주소 정규식
^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|...)$- IPv4 형식을 확인:
0.0.0.0부터255.255.255.255까지.
기본 정규식 문법
^,$,[ ],|,?,*,{n,m}등으로 조건 구성.
정규식 활용법
- 검색: 특정 패턴 찾기 (
/hello/) - 검증: 형식 체크 (
/^\d{3}-\d{2}-\d{4}$/) - 치환: 문자열 변환 (
'apple'.replace(/a/, 'A')→Apple)
- 검색: 특정 패턴 찾기 (
'JS' 카테고리의 다른 글
| toastGrid에서 계층형 드롭다운 구현 | tui-grid, editor, 행단위 editor 옵션 동기화, 동적 select 옵션 (0) | 2025.04.02 |
|---|