자바스크립트에서는 문자열 내의 일부 또는 모든 특정 문자열을 다른 문자열로 치환할 수 있는 유용한 기능을 제공합니다. 이를 문자열 치환(Replace)이라고 합니다. 문자열 치환은 주어진 문자열에서 특정 패턴을 찾아 해당 패턴을 원하는 다른 문자열로 대체하는 기능을 수행합니다.
기본적인 문자열 치환
가장 기본적인 문자열 치환 함수는 replace()
함수입니다. 이 함수는 문자열 내에서 첫 번째로 발견된 패턴을 다른 문자열로 대체합니다. 이 함수는 다음과 같은 문법을 가집니다.
string.replace(searchValue, replaceValue);
searchValue
: 대체하고자 하는 패턴입니다.replaceValue
: 대체할 문자열입니다.
예를 들어, 다음과 같은 코드를 사용하여 문자열 내의 모든 공백을 제거할 수 있습니다.
let str = "Hello, World!";
let newStr = str.replace(/\s/g, ''); // "Hello,World!"
이 예제에서 /\s/g
는 모든 공백 문자를 의미하고, ''
는 공백을 제거할 빈 문자열로 대체함을 의미합니다.
정규 표현식을 사용한 문자열 치환
자바스크립트 문자열 치환은 정규 표현식과 함께 사용할 때 특히 강력해집니다. 정규 표현식을 사용하면 더 다양한 패턴을 찾고 대체할 수 있습니다.
string.replace(regexp, replaceValue);
regexp
: 대체하고자 하는 패턴을 정규 표현식으로 지정합니다.replaceValue
: 대체할 문자열 또는 치환을 수행하는 함수입니다.
예를 들어, 다음과 같은 코드는 문자열 내의 모든 숫자를 ‘*’ 문자로 대체합니다.
let str = "I have 123 apples and 456 bananas.";
let newStr = str.replace(/\d/g, '*'); // "I have *** apples and *** bananas."
위의 예제에서는 /d
패턴을 사용하여 모든 숫자를 찾고, ‘*’ 문자로 대체하였습니다.
치환을 수행하는 함수 활용
replace()
함수의 두 번째 매개변수로 함수를 지정할 수도 있습니다. 이를 통해 치환 로직을 사용자 정의할 수 있습니다.
string.replace(regexp, function(match, p1, p2, ..., pn, offset, string) {
// 치환 로직을 작성합니다.
return replacedString;
});
위의 예제를 기반으로 하여 숫자가 아닌 문자 이외에는 모두 ‘*‘로 대체하는 예제를 작성해보겠습니다.
let str = "I have 123 apples and 456 bananas.";
let newStr = str.replace(/\d/g, function(match) {
return match === ' ' ? ' ' : '*';
});
// "I have *** apples and *** bananas."
위의 예제에서는 치환 함수 내에서 입력된 매개변수인 match
를 확인하여 공백 문자(‘ ‘)는 그대로 두고, 숫자가 아닌 다른 문자에 대해서는 ‘*‘로 대체하도록 하였습니다.
결론
자바스크립트의 문자열 치환 기능을 통해 문자열 내의 특정 패턴을 찾아 원하는 문자열로 쉽게 대체할 수 있습니다. replace()
함수를 이용하여 기본적인 문자열 치환을 수행하거나, 정규 표현식과 함수를 조합하여 더 복잡한 치환 작업을 수행할 수도 있습니다. 이러한 문자열 치환 기능을 활용하여 다양한 문자열 처리 작업을 효율적으로 수행할 수 있습니다.