반응형
정규 표현식이란?
정규 표현식(Regular Expression)은 문자열에서 특정 패턴을 찾기 위해 사용되는 강력한 도구입니다. JavaScript에서 정규 표현식을 사용하여 문자열 검색, 일치 여부 확인, 치환 등의 작업을 효율적으로 수행할 수 있습니다.
정규 표현식의 기본 문법
정규 표현식은 슬래시(/
)로 감싸서 정의하며, 다양한 패턴 매칭 기호를 사용할 수 있습니다.
예제
let regex = /hello/;
let str = 'hello world';
console.log(regex.test(str)); // true
주요 패턴 매칭 기호
.
: 임의의 한 문자와 일치*
: 앞의 문자가 0번 이상 반복+
: 앞의 문자가 1번 이상 반복?
: 앞의 문자가 0번 또는 1번 나타남^
: 문자열의 시작$
: 문자열의 끝[]
: 문자 클래스, 대괄호 안의 문자 중 하나와 일치|
: OR 연산자, 선택 패턴{n,m}
: 앞의 문자가 최소n
번, 최대m
번 반복
예제
let regex1 = /h.llo/;
let regex2 = /hel*o/;
let regex3 = /^hello$/;
let regex4 = /[a-z]/;
let regex5 = /(hello|world)/;
console.log(regex1.test('hello')); // true
console.log(regex2.test('heeeeeeeello')); // true
console.log(regex3.test('hello')); // true
console.log(regex4.test('abc')); // true
console.log(regex5.test('hello world')); // true
정규 표현식 메서드
test 메서드
test
메서드는 문자열이 정규 표현식과 일치하는지 여부를 확인합니다. 일치하면 true
, 그렇지 않으면 false
를 반환합니다.
예제
let regex = /hello/;
let str1 = 'hello world';
let str2 = 'goodbye world';
console.log(regex.test(str1)); // true
console.log(regex.test(str2)); // false
match 메서드
match
메서드는 문자열에서 정규 표현식과 일치하는 부분을 배열로 반환합니다. 일치하는 부분이 없으면 null
을 반환합니다.
예제
let regex = /hello/;
let str = 'hello world, hello again';
let matches = str.match(regex);
console.log(matches); // ['hello']
let regexGlobal = /hello/g;
let matchesGlobal = str.match(regexGlobal);
console.log(matchesGlobal); // ['hello', 'hello']
replace 메서드
replace
메서드는 문자열에서 정규 표현식과 일치하는 부분을 다른 문자열로 치환합니다.
예제
let regex = /hello/;
let str = 'hello world';
let newStr = str.replace(regex, 'hi');
console.log(newStr); // 'hi world'
정규 표현식의 활용 예제
이메일 검증
let emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
let email = 'example@example.com';
console.log(emailRegex.test(email)); // true
전화번호 검증
let phoneRegex = /^\d{3}-\d{3}-\d{4}$/;
let phone = '123-456-7890';
console.log(phoneRegex.test(phone)); // true
URL 검증
let urlRegex = /^(https?:\/\/)?(www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}(\/[a-zA-Z0-9._-]*)*\/?$/;
let url = 'https://www.example.com/path';
console.log(urlRegex.test(url)); // true
정규 표현식의 장점과 단점
장점
- 강력한 패턴 매칭: 복잡한 문자열 패턴을 간단하게 표현하고 처리할 수 있습니다.
- 짧은 코드: 적은 코드로 복잡한 문자열 처리를 수행할 수 있습니다.
- 유연성: 다양한 문자열 형식을 검증하고 변환하는 데 유연하게 사용할 수 있습니다.
단점
- 가독성 저하: 복잡한 정규 표현식은 읽기 어렵고 이해하기 어려울 수 있습니다.
- 디버깅 어려움: 정규 표현식의 오류를 찾고 수정하는 것이 어렵습니다.
- 성능 문제: 잘못된 정규 표현식은 성능 문제를 일으킬 수 있습니다.
결론
정규 표현식은 문자열 패턴 매칭을 위한 강력한 도구입니다. 이번 글에서는 정규 표현식의 기본 개념과 주요 패턴 매칭 기호, test
, match
, replace
메서드, 정규 표현식의 활용 예제, 장점과 단점에 대해 배웠습니다. 다음 글에서는 심볼과 이터레이터에 대해 알아보겠습니다.
다음 글에서 만나요!
반응형
'JavaScript 문법 시리즈' 카테고리의 다른 글
[JavaScript 문법] 32일차: 제너레이터 (0) | 2024.09.02 |
---|---|
[JavaScript 문법] 31일차: 심볼과 이터레이터 (0) | 2024.09.01 |
[JavaScript 문법] 29일차: 에러 처리 (0) | 2024.08.29 |
[JavaScript 문법] 28일차: AJAX와 Fetch API (0) | 2024.08.28 |
[JavaScript 문법] 27일차: 이벤트 루프와 태스크 큐 (0) | 2024.08.27 |