POTATO THAT WANT TO BE HUMAN

[JavaScript] 모든 문자열 치환하기 - replaceAll ? 본문

FRONTEND/JavaScript

[JavaScript] 모든 문자열 치환하기 - replaceAll ?

녜힝 2022. 1. 26. 20:32
반응형

지난 게시물에서는

자바스크립트에서 특정 문자열을 치환하는 방법을 알아봤습니다.

 

하지만 replace()는 여러 문자열이 있다면 첫번째로 발견한 문자열만 치환해줍니다.

그럼 여러 문자열을 치환하고 싶다면?

replaceAll()이 있다면 좋을텐데.. 아쉽게도 자바스크립트에는 replaceAll()이란건 없습니다 .. 😓

 

그럼 방법을 살펴볼까요?

 

let str = 'red, yellow, blue, red';
let newStr = str.replace(/red/g, 'pink');

console.log(str);  // red, yellow, blue, red
console.log(newStr);  // pink, yellow, blue, pink

 

모든 문자열을 치환하기 위해 정규식(regular expression)을 사용합니다.

 

정규식으로 찾으려는 문자열은 '/'로 감싸서 파라미터로 들어가는 값이 정규식임을 알려줍니다.

그리고 '/' 뒤에는 'g'라는 modifier를 붙여주었습니다.

g는 'global match'라는 의미로 사용됩니다.

 

 

그럼 대소문자 구분없이 모든 문자열을 치환하려면요? 🦜

 

지난 게시물에서 replace()는 대소문자를 구분한다고 했었죠

하지만 대소문자를 구분하지 않고 모든 문자열을 치환하고 싶을 경우가 있습니다.

 

그럴 경우 'g' modifier와 'i' modifier를 함께 적어주면 됩니다.

i는 'ignore case'라는 의미로, 대소문자를 구분하지 말라는 의미죠.

 

let str = 'Red, yellow, blue, red';
let newStr = str.replace(/red/gi, 'pink');

console.log(str);  // Red, yellow, blue, red
console.log(newStr);  // pink, yellow, blue, pink

 

반응형
Comments