[JS] replaceAll() 구현하기

navyjeongs·2023년 3월 30일
0

자바스크립트

목록 보기
2/2
post-thumbnail

ES2021에서 replaceAll() 메서드가 추가되었다. 하지만 코테를 준비할 때 채점 환경에 따라 ES2021이 도입되지 않은 곳이 있는데 해당 환경에서는 replaceAll()을 사용할 수 없다. 따라서 replaceAll()을 구현해보겠다.

replace()

  • replace()의 경우 첫 번째 문자열만 치환이 되고 나머지는 치환이 되지않는다.
  • 아래 예시를 보면 “l”을 숫자 7로 바꾸는데 최초의 "l"만 변환이 되고 나머지 "l"은 변환이 되지 않는다.
let str = "hello, world";
str = str.replace("l", 7);

console.log(str);
//he7lo, world

replaceAll()

  • replaceAll()의 경우 해당 문자열 전체를 치환한다.
let str = "hello, world";
str = str.replaceAll("l", 7);
console.log(str);
//he77o, wor7d

replaceAll() 구현하기

  • replaceAll()을 구현하기 위해서는 split()과 join ()을 사용해야한다.
  1. split()을 사용한다. split()은 전체 문자열을 작성한 문자열을 기준으로 나눠 배열로 저장한다. 즉, split("찾을 문자열")이다.
let str = "hello, world";
str = str.split("l");
console.log(str);
// ["he", "", "o wor", "d"] 

split("l")을 사용하면 아래와 같은 배열이 만들어진다.

index0123
valueheo word
  1. join()을 사용하여 위에서 만든 배열을 하나의 문자열로 합친다.
  • 1에서 찾을 문자열을 기준으로 나눴다면 join()에서는 추가할 문자열을 작성한다. join(7)을 사용하여 각 배열 사이에 숫자 7을 추가한다.
    즉, join("변환할 문자열")이 된다.
    그렇게 되면 str = he + 7 + "" + 7 + o wor + 7 + d가 된다.
let str = "hello, world";
str = str.split("l");
str = str.join(7);
console.log(str);
// he77o, wor7d

요약

  • 검색문자열.split("찾을 문자열").join("바꿀 문자열")
let str = "hello, world";
str = str.split("l").join(7);
console.log(str);
// he77o, wor7d
profile
Front-End Developer

0개의 댓글