replace() 함수를 이용하여 문자열의 특정 문자열을 다른 문자열로 변환할 수 있다.
먼저 검색되는 1개의 문자열만 변환하지만, 정규 표현식을 이용하여 일치하는 모든 문자열을 변환할 수 있다.
정규표현식 이란?
문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리할 수 있도록 하는 수단이다.
String 타입은 replace()함수로 특정 문자열을 다른 문자열로 변환할 수 있습니다.
예를 들어, 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() 함수를 사용한다.
문자열 안에 변경하려는 문자열을 여러개 있고 모든 문자열을 바꾸고 싶을 때, 정규식을 이용하여 모든 문자열을 변경할 수 있습니다.
아래 예제는 문자열에 있는 Java를 모두 JavaScript로 변환하는 예제입니다. 플래그 g는 해당하는 모든 문자열을 변환하라는 의미입니다.
let str = 'Hello world, Java, Java, Java';
str = str.replace(/Java/g, 'JavaScript');
console.log(str);
아래 예제는 아무 문자열도 치환하지 않습니다. 그 이유는 replace()가 대소문자를 구분하여 문자열을 찾기 때문입니다. 즉, java와 동일한 문자열이 없기 때문에 아무것도 변경되지 않습니다.
let str = 'Hello world, Java, Java, Java';
str = str.replace(/java/g, 'JavaScript');
console.log(str);
문자열에 있는 모든 숫자를 제거할 때, 숫자를 공백으로 치환하면 됩니다. 패턴 [1-9]는 1부터 9까지 숫자를 의미하며, 이 범위의 숫자에 해당하면 공백으로 치환합니다.
let str = 'This123is456Java789script';
str = str.replace(/[1-9]/gi, '');
console.log(str);