Rhapsodist

javascript

Javascript에서 String (문자열) replace 함수 에 관하여

2020.03.07

Created By Rhapsodist

Rhapsodist

Javascript에서 String (문자열) replace 함수 에 관하여

1. 개요

자바스크립트 에서 replace 함수 는 문자열 안에서 지정한 keyword 를 내가 원하는 문자 혹은 문자열로 바꿔주는 (replace 해주는) 역할을 한다.

그런데 한가지 문제점이 있다. 다음의 결과를 보자.

const str = 'abc bcd cde def'

const result = str.replace('bc', 'aa')

console.log(result)
// => 'aaa bcd cde def'

내 예상에는 'aaa aad cde def'가 결과로 나오는게 정상이라고 생각하지만, 결과를 확인해보면 문자열 앞에서 부터 해당 keyword 를 찾으면, 해당 한 문자만 replace 하고 나머지는 replace 되지 않고 그대로 출력되는 것을 볼 수 있다.

지금부터 내 예상과 같을 수 있게 문자열 안에서 keyword 에 해당되는 모든 문자를 replace 하는 방법을 알아보자.

2. Use Regular expression

문자열 처리에서 역시 빠지지 않는 방법으로는 Regular expression ( 정규표현식 ) 을 사용하는 방법이다.

const str = 'abc bcd cde def'

const result = str.replace(/bc/gi, "aa")

console.log(result)
// => "aaa aad cde def"

위와 같이 정규표현식을 사용하여 replace를 실행하면 쉽게 바꿀 수 있다.

  • g : global
  • i : ignore case

3. Make function

다음은 정규표현식을 쓰는 방법이 아닌, 다른 방법으로 처리하는 방법을 보자. 조금 트릭을 가미한 방법이라고 생각하면 된다.

const replaceAll = (str, target, replace) => str.split(target).join(replace)

const str = 'abc bcd cde def'

const result = replaceAll(str, 'bc', 'aa')

console.log(result)
// => 'aaa aad cde def'

위와같이 replaceAll 이라는 함수 를 생성하여 사용하는 방법도 있다. 문자열을 keyword 로 분해한뒤 바꿔줄 문자로 서로를 join 시키는 방법이다.

Share to ...

#javascript
#replace
#keyword
#regular
#expression
#replaceAll