Rhapsodist
2020.03.07
Created By Rhapsodist
Rhapsodist
자바스크립트 에서 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 하는 방법을 알아보자.
문자열 처리에서 역시 빠지지 않는 방법으로는 Regular expression ( 정규표현식 ) 을 사용하는 방법이다.
const str = 'abc bcd cde def'
const result = str.replace(/bc/gi, "aa")
console.log(result)
// => "aaa aad cde def"
위와 같이 정규표현식을 사용하여 replace를 실행하면 쉽게 바꿀 수 있다.
다음은 정규표현식을 쓰는 방법이 아닌, 다른 방법으로 처리하는 방법을 보자. 조금 트릭을 가미한 방법이라고 생각하면 된다.
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 시키는 방법이다.
© 2020, made by Rhapsodist