JS

정규식, test

99duuk 2025. 1. 9. 17:29

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/ab 사이에 아무 문자 하나
\ 특수 문자를 문자 그대로 표현 /\./. (실제 점)
[] 문자 집합 (하나 선택) /[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)을 검증
  • 구성:
    1. (25[0-5]): 숫자 250~255
    2. (2[0-4][0-9]): 숫자 200~249
    3. ([01]?[0-9][0-9]?): 숫자 0~199
    4. \.: 각 숫자를 점으로 구분
    5. ^$: 문자열의 시작과 끝
  • 사용:
    const isValidIP = ipPattern.test('192.168.0.1'); // true
    const isNotValidIP = ipPattern.test('256.1.1.1'); // false

  1. 정규식이란?

    • 특정 문자열 패턴을 찾고, 검증하고, 변환하는 도구.
  2. test 메서드란?

    • 정규식과 문자열이 매칭되는지 true/false로 반환.
  3. 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까지.
  4. 기본 정규식 문법

    • ^, $, [ ], |, ?, *, {n,m} 등으로 조건 구성.
  5. 정규식 활용법

    • 검색: 특정 패턴 찾기 (/hello/)
    • 검증: 형식 체크 (/^\d{3}-\d{2}-\d{4}$/)
    • 치환: 문자열 변환 ('apple'.replace(/a/, 'A')Apple)