[JavaScript] 정규표현식을 치환 해보자!(replace, replaceAll)

ParkCode·2024년 3월 2일
0

자바스크립트

목록 보기
14/20

✨문자열을 치환하기

replace() 함수를 이용하여 문자열의 특정 문자열을 다른 문자열로 변환할 수 있다.
먼저 검색되는 1개의 문자열만 변환하지만, 정규 표현식을 이용하여 일치하는 모든 문자열을 변환할 수 있다.

정규표현식 이란?
문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리할 수 있도록 하는 수단이다.

1. replace()로 문자열 치환

String 타입은 replace()함수로 특정 문자열을 다른 문자열로 변환할 수 있습니다.

  • 기본적으로 replace()는 먼저 검색되는 1개의 문자열만 변환한다.
  • 여러 문자열을 변환할 때는 정규 표현식을 이용하여 일치하는 모든 문자열을 변환할 수 있다.

예를 들어, replace('old', 'new')는 문자열에 있는 old 문자열을 new 문자열로 변환한 문자열을 리턴합니다.

let str = 'Hello world, Java';

str = str.replace('Java', 'JavaScript');
console.log(str);

문자열에 바꾸려는 문자열이 여러개 있어도, 가장 먼저 찾은(앞에 있는) 문자열 1개만 변환합니다.

let str = 'Hello world, Java, Java, Java';

str = str.replace('Java', 'JavaScript');
console.log(str);


문자열 순서만 거꾸로 변환하려면 replace() 대신에 reverse() 함수를 사용한다.

2. 정규식을 이용하여 모든 문자열 치환

문자열 안에 변경하려는 문자열을 여러개 있고 모든 문자열을 바꾸고 싶을 때, 정규식을 이용하여 모든 문자열을 변경할 수 있습니다.

  • replace(/[old str]/g, '[new str]')는 문자열에 있는 모든 old string을 new string으로 변환

아래 예제는 문자열에 있는 Java를 모두 JavaScript로 변환하는 예제입니다. 플래그 g는 해당하는 모든 문자열을 변환하라는 의미입니다.

let str = 'Hello world, Java, Java, Java';

str = str.replace(/Java/g, 'JavaScript');
console.log(str);

3. 대소문자 구분하지 않고 문자열 치환

아래 예제는 아무 문자열도 치환하지 않습니다. 그 이유는 replace()가 대소문자를 구분하여 문자열을 찾기 때문입니다. 즉, java와 동일한 문자열이 없기 때문에 아무것도 변경되지 않습니다.

let str = 'Hello world, Java, Java, Java';

str = str.replace(/java/g, 'JavaScript');
console.log(str);

4. 모든 숫자를 공백으로 치환

문자열에 있는 모든 숫자를 제거할 때, 숫자를 공백으로 치환하면 됩니다. 패턴 [1-9]는 1부터 9까지 숫자를 의미하며, 이 범위의 숫자에 해당하면 공백으로 치환합니다.

let str = 'This123is456Java789script';

str = str.replace(/[1-9]/gi, '');
console.log(str);

profile
프론트엔드 개발자 지망생

0개의 댓글

관련 채용 정보