코딩 테스트 - 문자열 대체 함수
문자열 대체(replace)함수
String.prototype.replace()
구문
replace(pattern, replacement)
예시
const paragraph = "Hi, my name is Dragon"
console.log(paragraph.replace("i", ''));
// H, my name is Dragon
참조
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replace
String.prototype.replace() - JavaScript | MDN
String 값의 replace() 메서드는 pattern의 단일, 일부 혹은 모든 일치 항목이 replacement로 대치된 새로운 문자열을 반환합니다. pattern은 문자열 혹은 RegExp일 수 있습니다. replacement는 문자열이나 각 일치
developer.mozilla.org
문제점
먼저 일치하는 문자만 대체하므로 뒤에 오는 문자는 무시함.
단, g 플래그는 예외.
해결법1
new RegExp(letter, 'g')는 주어진 letter를 정규 표현식으로 변환하고,
g 플래그를 추가하여 문자열 전체에서 해당 문자를 모두 찾음
예시
const paragraph = "Hi, my name is Dragon"
console.log(paragraph.replace(new RegExp("i", 'g'), ""));
// H, my name s Dragon
참조
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp
RegExp - JavaScript | MDN
RegExp 생성자는 패턴을 사용해 텍스트를 판별할 때 사용합니다.
developer.mozilla.org
해결법2
문자열 전역 대체(replaceAll)함수 사용.
String.prototype.replaceAll()
구문
replaceAll(pattern, replacement)
예시
const paragraph = "Hi, my name is Dragon"
console.log(paragraph.replaceAll("i", ''));
// H, my name s Dragon
참조
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll
String.prototype.replaceAll() - JavaScript | MDN
replaceAll() 메서드는 pattern의 모든 일치 항목이 replacement로 대체된 새 문자열을 반환합니다. pattern은 문자열 또는 RegExp일 수 있으며 replacement는 각 일치 항목에 대해 호출되는 문자열 또는 함수일
developer.mozilla.org
해결법 3
문자열 분할(split) 함수 사용 이후 반환된 배열을 join 함수로 문자열 연결.
String.prototype.split()
Array.prototype.join()
구문
split(separator);
예시
const paragraph = "Hi, my name is Dragon"
console.log(paragraph.split("i"));
// ['H', ', my name ', 's Dragon']
console.log(paragraph.split("i").join(""));
참조
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/split
String.prototype.split() - JavaScript | MDN
split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.
developer.mozilla.org