JavaScript에서 정규식(Regular Expression 또는 RegExp)은 문자열 처리를 위한 강력하고 다양한 기능을 제공하는 도구입니다. 정규식은 특정 패턴을 기술하여 문자열에서 원하는 정보를 찾거나 변환하는 데 사용됩니다. 이 글에서는 JavaScript에서 정규식을 다양하게 활용하는 몇 가지 예제를 살펴보겠습니다.
1. 패턴 매칭 (test, exec)
정규식을 사용하여 특정 패턴이 문자열에 존재하는지 확인하거나, 일치하는 부분을 추출할 수 있습니다.
const pattern = /hello/;
console.log(pattern.test("hello world")); // true
console.log(pattern.test("hi there")); // false
const result = pattern.exec("hello world");
console.log(result); // ["hello", index: 0, input: "hello world", groups: undefined]
2. 문자열 대체 (replace)
replace 메서드를 사용하여 문자열 내의 특정 패턴을 다른 문자열로 대체할 수 있습니다.
const text = "I love JavaScript!";
const newText = text.replace(/JavaScript/, "Python");
console.log(newText); // "I love Python!"
3. 전역 검색 (g 플래그)
g 플래그를 사용하여 패턴과 일치하는 모든 부분을 검색할 수 있습니다.
const text = "JavaScript is fun, JavaScript is powerful!";
const pattern = /JavaScript/g;
const matches = text.match(pattern);
console.log(matches); // ["JavaScript", "JavaScript"]
4. 대소문자 구분 안 함 (i 플래그)
i 플래그를 사용하여 대소문자를 구분하지 않도록 설정할 수 있습니다.
const text = "Hello, hello, HELLO";
const pattern = /hello/i;
console.log(pattern.test(text)); // true
5. 문자 범위 및 특수 문자
정규식은 문자의 범위나 특수 문자를 지정하여 패턴을 더 유연하게 만들 수 있습니다.
// 숫자만 포함된 문자열
const pattern = /\d+/;
console.log(pattern.test("123")); // true
console.log(pattern.test("abc")); // false
// 이메일 주소 형식
const emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
console.log(emailPattern.test("user@example.com")); // true
6. 반복 및 선택
반복 횟수를 지정하거나 선택적인 부분을 표현할 수 있습니다.
// 숫자 3자리에서 5자리까지
const pattern = /\d{3,5}/;
console.log(pattern.test("12345")); // true
console.log(pattern.test("123456")); // true
정규식은 강력하고 유용한 도구이지만, 패턴을 작성할 때마다 테스트하고 실험하여 익숙해지는 것이 중요합니다. 복잡한 패턴을 다룰수록 정규식의 강력함과 유연성이 드러납니다. JavaScript에서 정규식을 마스터하면 문자열 처리 작업을 훨씬 효과적으로 수행할 수 있습니다.